MVC3 学习总结一(未发布)
MVC: Model,View,Control
设置View中的数据
1. 返回model,View中强类型化
Control:
public ActionResult Browse(string Genre)
{
var Album = db.Genres.Include("Albums").Single(c => c.Name == Genre);
ViewData["Genre"] = Genre;
return View(Album);
}
View:
@model Mvc_MusicShop_diy.Models.Genre (强类型化,一个View只能强类型化一个)
类似的 当 control 返回 list<xx>集合,view 应当如下强类型化
@model List<Mvc_MusicShop_diy.Models.Genre>
or
@model IEnumerable<Mvc_MusicShop_diy.Models.Genre>
使用:
<ul>
@foreach (var Genre in Model)
{
<li>
@Html.ActionLink(@Genre.Name, "Browse", new { Genre=@Genre.Name})
</li>
}
</ul>
2. ViewData
Control 设置:ViewData["Provinces"] = db.Provinces.ToList();
View使用: @using Mvc_MusicShop_diy.Models
ViewData["Provinces"] as List<Province>
3. ViewBag
ViewBag.title=”购物车页面” //设置View 页面的html元素的值
设置模版View
1._ViewStart.cshtml 代码制定了页面的默认模版的路径
@{Layout = "~/Views/Shared/_Layout.cshtml";
}
查看模版页面代码
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
</head>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>欢迎光临南京网上商城</h1>
</div>
<div id="logindisplay">
@Html.Partial("_LogOnPartial")
</div>
<div id="menucontainer">
<ul id="menu">
<li>@Html.ActionLink("商城主页", "Index", "Home")</li>
<li>@Html.ActionLink("关于商城", "About", "Home")</li>
<li>@{Html.RenderAction("CartSummary", "ShoppingCart", "");}</li>
</ul>
</div>
</div>
@*@{Html.RenderAction("Category", "Home");}*@
<div id="main">
</div>
<div id="footer">
关于我们|联系我们|人才招聘|商家入驻|广告服务|手机京东|友情链接|销售联盟|商城社区|南京商城公益
</div>
</div>
</body>
</html>
[ChildActionOnly] //表明了,通过url : /control/CartSummary 访问是不存在的;只作为其他View的一部分
public ActionResult CartSummary()
{
var cart = ShoppingCart.GetCart(this.HttpContext);
ViewData["CartCount"] = cart.GetItemsCount();
return PartialView(); //或者 PartialView("CartSummary");
}
在 _ViewStart.cshtml 中使用
<li> @{Html.RenderAction("CartSummary", "ShoppingCart", "");} </li>
注意:@{ }
MVC3自带的客户端验证和服务端验证
原理:model与view 模型 绑定
必须引用:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Html.ValidationSummary(true) 在指定地方将错误集中展示 ,生成的html代码为
<ul><li>错误1</li><li>错误2</li></ul>
@Html.ValidationMessageFor(model => model.Title) 展示title出错的信息(根据model中类型与属性自动 js 判断和服务端判断)
服务端根据 ModelState.IsValid Bool 的值 (根据model相关约束验证后是否有错误)
[HttpPost]
public ActionResult Create(Album album)
{
if (ModelState.IsValid)
{
db.Albums.Add(album);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(album);
}
Model 中添加自定义约束
比如: 某不能为空,若为空提示自定义的错误消息;view中显示的元素名称为XX?email,phone 正则验证;
首先得引用命名空间
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
[DisplayName("手机号")]
[Required(ErrorMessage = "手机号不能为空")]
[RegularExpression(@"^1[3|4|5|8]\d{9}$", ErrorMessage = "手机号格式错误")]
public string phone{get;set;}
[ScaffoldColumn(false)] //主键;当与view模型绑定生成自动生成html元素的时候,是否隐藏该列
public int AddressId { get; set; }
转载于:https://www.cnblogs.com/StudyLife/p/3559725.html
MVC3 学习总结一(未发布)相关推荐
- 亚马逊重组游戏开发部门:数个未发布游戏被“扼杀”;台积电明年开始为苹果iPhone生产5nm处理器……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 爆料:2999 元 的 Redmi K40 Pro 搭载骁龙 888,K40 搭载未发布次旗舰芯片
IT之家1月19日消息 数码博主 @数码闲聊站 今日爆料称,Redmi 下个月的发布会上至少将推出两款 K40 系列新机,包括定价 2999 元的 Redmi K40 Pro 和定价未曝光的 Redm ...
- 极客日报:周鸿祎,微信靠摇妹子起家;红米 K40 未发布就炸?真相来了;滴滴高管立军令状:若触碰安红线指标,全年安全绩效清零...
一.互联网快讯 1.周鸿祎:微信是靠摇妹子起家 在网上公开的一段视频中,360 董事长周鸿祎谈起了微信的发家史.周鸿祎说道,微信现在是很伟大的一款产品,但是张小龙曾经的一篇自述中提到微信最早做出来的突 ...
- 极客日报第 74 期:周鸿祎:微信靠摇妹子起家;红米 K40 未发布就炸?真相来了;滴滴高管立军令状:若触碰安全红线指标,全年安全绩效考核结果清零
文章目录 一.互联网快讯 二.程序员专属 三.Github 每日精选 四.CSDN 社区优质博文精选 一.互联网快讯 1.周鸿祎:微信是靠摇妹子起家 在网上公开的一段视频中,360 董事长周鸿祎谈起了 ...
- ASP.NET MVC3 学习笔记(一)MVC模式简介
以下文字摘自 ASP.NET MVC3 高级编程 MVC将应用程序的用户界面(User Interface,UI)分为三个主要部分: 模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则 视图 ...
- MVC3学习第六章 排山倒海第二变----使用 Entity Framework Code-First 进行数据访问
本章学习内容 1.Entity Framework 4.1介绍 2.Entity Framework Code-First 进行数据访问 3.利用EF实现用户的增加和列表功能 1.Entity Fra ...
- MVC3学习第十三章 佟掌柜第二弹——MVC3下利用陕北吴旗娃的分页控件实现数据分页...
本章学习内容 1.了解陕北吴旗娃的Mvc分页控件 2.利用分页控件实现MVC3下的商品分页 3.利用分页控件实现MVC3下一个页面多个分页以及ajax分页效果 1.了解陕北吴旗娃的Mvc分页控件 在w ...
- 1.初学MVC3学习笔记1
一.首先我们新建了一个MVC3的工程项目,并且在Controllers的文件夹添加了新的类然后在里面写方法 1.第一个方法是public string Index()这只是返回一个string类型的字 ...
- MVC3学习:利用mvc3+ajax实现登录
用到的工具或技术:vs2010,EF code first,JQuery ajax,mvc3. 第一步:准备数据库. 利用EF code first,先写实体类,然后根据实体类自动创建数据库:或者先创 ...
最新文章
- 坐标下降+随机梯度下降
- 基于Windows Server 2003 ntbackup下数据文件的完整备份与差异备份
- mysql服务器_windows mysql服务器
- 【渝粤教育】国家开放大学2018年秋季 3950T金融基础 参考试题
- 限制 计算机中 某用户上网 win7,利用win7限制上网时间的方法
- 弹出键盘布局上移_评测 | 别买了HHKB键盘不知道这些新功能!
- 一个普通二叉树的遍历
- TCP/IP基础介绍
- Windows 程序注册表常用键名——CurrentVersion
- 学生信息管理系统V1.0
- Instruments
- colorkey唇釉是否安全_colorkey唇釉成分安全吗
- Connection to the other side was lost in a non-clean fashion
- C++各种经典小游戏
- Arduino人体红外感应+继电器
- java仿QQ程序4.0
- 7.2 布朗运动-两种构造方法
- Altium Designer使用简介
- 喂喂喂彭彭嘭GOGOGO
- win10 CPU占用率过高 经常100%
热门文章
- android怎么垂直居中且靠右,placeholder 靠右垂直居中/位置兼容
- mysql 平均值 排序_MySQL按平均两个平均值排序
- 简单shell:删除五日之前的日志文件
- LeetCode 15. 三数之和 思考分析(双指针解)
- php 字符串匹配 like,ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法...
- ffplay分析 (音视频同步:主时钟为音频)
- kali linux编辑记事本,kali linux操作系统
- php 获取指定时间 次日,PHP时间判断语句
- UVA 116——Unidirectional TSP
- 26. 删除排序数组中的重复项 golang