Asp.net Mvc Codeplex Preview 5 第一篇 Helper新特性

下载:http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16775

 

Asp.net Mvc Codeplex Preview 5Asp.net Mvc的一个过渡版本,它包含了一些新特性。

Pv5对于Helper的更改基本集中在HtmlHelper。对于简单的使用,我基本一带而过,如果朋友们有什么不明白,可以留言。

AttributeEncode提供了HtmlAttributeEncode功能

  1. 使用方法
  2. <%=Html.AttributeEncode("<script src=/"j.js/"></script><div background='javascript:alert('');'/>") %>
  3. 编码结果
  4. <script src="j.js"></script><div background='javascript:alert('');'/>


Encode 提供了HTMLENCODE功能


  1. 使用方法
  2. <%=Html.Encode("<script src=/"j.js/"></script><div background='javascript:alert('');'/>")%>
  3. 编码结果
  4. <script src="j.js"></script><div background='javascript:alert('');'/>
RenderUserControl 改为 RenderPartial,并提供了更好的模板寻找方式

  1. <%=Html.RenderUserControl("/Views/Shared/Menu.ascx") %>
  2. 改为
  3. <% Html.RenderPartial("Menu");%>
  4. 注意,原来的<%=%>改了为一句语言,有分号结束,与RenderAction统一了
验证控件
起到了服务器端验证作用,

效果如下:

 Asp.net Mvc Codeplex Preview 5 第一篇 Helper新特性_第1张图片

使用方法如下:

Model:

  1.     public class MyModel
  2.     {
  3.         public int ID { getset; }
  4.         public string Name { getset; }
  5.     }
View:
  1.   <h3>验证控件 </h3>
  2.     <%using (Html.Form("home", "save", FormMethod.Post)) {%>
  3.     <%=Html.TextBox("ID")%>
  4.     <%=Html.ValidationMessage("ID",new {style="color:green"})%>
  5.     <%=Html.TextBox("Name")%>
  6.     <%=Html.ValidationMessage("Name")%>
  7.     <%=Html.SubmitButton() %>
  8.     <%
  9.         }%>
  10.     <div style="color: Red">
  11.         <%=Html.ValidationSummary() %>
  12.     </div>
Controller:
  1. public class HomeController : Controller {
  2.         public ActionResult Index() {//显示表单的页
  3.             ViewData["Title"] = "Home Page";
  4.             ViewData["Message"] = "Welcome to ASP.NET MVC!";
  5.             return View();
  6.         }
  7.         [AcceptVerbs("POST")]
  8.         public ActionResult Save(int? ID, string Name)
  9.         {//处理表单的页
  10.             if(ID==null)
  11.             ViewData.ModelState.AddModelError("ID", ID.ToString(), "ID是必添项!");
  12.             if (string.IsNullOrEmpty(Name))
  13.                 ViewData.ModelState.AddModelError("Name", Name, "Name是必添项!");
  14.             if (ViewData.ModelState.IsValid)//验证成功后做的操作
  15.                 return RedirectToAction("Index");
  16.             return View("Index");//else
  17.         }
  18.         
  19.         public ActionResult About() {
  20.             return View();
  21.         }
  22.     }

AntiForgeryToken

这是一个验证提交页的东西,类似ViewState

先在提交页的表单中写

<%=Html.AntiForgeryToken() %>

 生成一个类似

  1. <input name="__MVC_AntiForgeryToken" type="hidden" value="FaSCzN4P+6Hg977mdOX4z9pCKOy4vlP6whi0RGD+2L9mbTNGGx4GmN36sE4klJZf" />
  2.  

 的隐藏字段。

 拿刚才的Action为例:


  1.    [ValidateAntiForgeryToken]
  2.         public ActionResult Save(int? ID, string Name)
  3.         






你可能感兴趣的:(JavaScript,mvc,服务器,asp.net,action,menu)