1.学习教程:
1.ASP.NET MVC4入门教程:Asp.Net MVC4入门指南
4.从零开始学习ASP.NET MVC1.05.ASP.NET MVC模型验证
2.ASP.NET MVC笔记:
路由的作用:
1.获取参数
2.引导到对应的VIEW页面
其他:
1.路由配置,由上而下进行匹配,匹配到后下面的不再去匹配。
3.ViewData与TempData的区别:
ViewData["openId"]; 在View之间传值
TempData["OpenId"]; 在Action之间传值
4.在MVC的Razor视图中写三元表达式:
<input type="text" name="num" value="@(Model.LeastBuyHourCount!=null?Model.LeastBuyHourCount:1)">个学时
5.向控制器发送带参数的请求写法:
/Login/ValidateCode/?id=1
6.ASP.NET MVC视图中的Model和model的区别: 参考>>
Model是View传给视图的模型变量。
model是Lambda中的参数名,这个可以随便叫,叫 x y z 都可以。
@model IEnumerable<StockStar.Activity.Entity.Models.favorite_rank_all_info> //指明控制器传过来的ViewData.Model的模型类型(强类型视图) @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h2>Index</h2> <table> <tr> <th> @Html.DisplayNameFor(model => model.nickname) //这里的model是lambda表达式的形参 </th> </tr> @foreach (var item in Model) //这里的Model就是控制器传过来的ViewData.Model的值 { <tr> <td> @Html.DisplayFor(modelItem => item.nickname) </td> </tr> } </table>
7.在视图中引用样式、js、图片之类的文件,用@Url.Content("~/Content/images/pointer4.gif") 可以将相对路径改为绝对路径,比如程序部署到二级目录下的时候就有用了。要不路径不会带上二级目录,则会出错。
9.MVC遇到脚本输入禁止报安全提示黄页办法,在具体方法投上加:[ValidateInput(false)]
[ValidateInput(false)] public ActionResult Owner(uint p = 1, string votername = null) { code... }
10.mvc跳转传值:
#region 注册页面 /// <summary> /// 注册页面 /// </summary> /// <returns></returns> public ActionResult Index() { return RedirectToAction("Success", new { password = 13 }); //跳转加上参数 } #endregion
#region 注册成功页面 /// <summary> /// 注册成功页面 /// </summary> /// <returns></returns> public ActionResult Success(int password) //接收参数 { return View(); } #endregion
11.路由url中有.号等特殊字符报错,如加.html后缀等。解决办法:
配置文件:路由中含点号报错,需要加上如下配置<modules runAllManagedModulesForAllRequests="true"></modules> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManagedModulesForAllRequests="true"/>
14.RenderAction与RenderPartial
RenderAction等于是一个完整的Action,然后将视图贴加到主视图中。不推荐使用,因为会拖垮主视图加载速度,亲测影响很大。
@{Html.RenderAction("NewRecommendCompany", "Company", new { count = 30 });}
public ActionResult NewRecommendCompany(int count) { return PartialView(); //不使用默认布局 }
RenderPartial没有自己的Action,只是有个单纯的View,View可以使用主视图中的实体,如Model、ViewData、ViewBag的数据。
@{Html.RenderPartial("~/Views/Shared/PartialDownLoadTip.cshtml");}
15.选中与未选中写法:
<input @Html.Raw(userInfo.Job == "OFFICE_WORKER" ? "checked='checked'" : "")) name="job" type="radio" class="input2 " value="OFFICE_WORKER" />上班族</label>
扩展阅读: