Asp.net Mvc Codeplex Preview 5 第一篇 Helper的新特性
阿新 • • 發佈:2018-12-27
Asp.net Mvc Codeplex Preview 5是Asp.net Mvc的一個過渡版本,它包含了一些新特性。
Pv5對於Helper的更改基本集中在HtmlHelper。對於簡單的使用,我基本一帶而過,如果朋友們有什麼不明白,可以留言。
AttributeEncode提供了HtmlAttributeEncode功能
使用方法<%=Html.AttributeEncode("<script src=\"j.js\"></script><div background='javascript:alert('');'/>") %>
編碼結果
方法僅將引號 (")、“and”符號 (&) 和左尖括號 (<) 轉換為等效的字元實體。該方法比Encode/HtmlEncode方法快得多。
Encode 提供了HTMLENCODE功能
使用方法<%=Html.Encode("<script src=\"j.js\"></script><div background='javascript:alert('');'/>
編碼結果
<script src="j.js"></script><div background='javascript:alert('');'/>
RenderUserControl 改為 RenderPartial,並提供了更好的模板尋找方式
<%=Html.RenderUserControl("/Views/Shared/Menu.ascx") %>改為
<% Html.RenderPartial("Menu");%>
注意,原來的<%=%>改了為一句語言,有分號結束,與RenderAction統一了
驗證控制元件
起到了伺服器端驗證作用,
效果如下:
使用方法如下:
Model:
publicclass MyModel{
publicint ID { get; set; }
publicstring Name { get; set; }
}
View:
}%><div style="color: Red"><%=Html.ValidationSummary() %></div>
Controller:
publicclass HomeController : Controller {public ActionResult Index() {//顯示錶單的頁
ViewData["Title"] ="Home Page";
ViewData["Message"] ="Welcome to ASP.NET MVC!";
return View();
}
[AcceptVerbs("POST")]
public ActionResult Save(int? ID, string Name)
{//處理表單的頁
if(ID==null)
ViewData.ModelState.AddModelError("ID", ID.ToString(), "ID是必添項!");
if (string.IsNullOrEmpty(Name))
ViewData.ModelState.AddModelError("Name", Name, "Name是必添項!");
if (ViewData.ModelState.IsValid)//驗證成功後做的操作
return RedirectToAction("Index");
return View("Index");//else
}
public ActionResult About() {
return View();
}
}
這就是PV5為我們提供了簡單的驗證功能了。
AntiForgeryToken
這是一個驗證提交頁的東西,類似ViewState
先在提交頁的表單中寫
<%=Html.AntiForgeryToken() %>
生成一個類似
<input name="__MVC_AntiForgeryToken" type="hidden" value="FaSCzN4P+6Hg977mdOX4z9pCKOy4vlP6whi0RGD+2L9mbTNGGx4GmN36sE4klJZf"/>的隱藏欄位。
拿剛才的Action為例:
[ValidateAntiForgeryToken]public ActionResult Save(int? ID, string Name)
DropDownList新加了預設項
要 <%=Html.DropDownList("請選擇","CityID", new { @class = "select" })%>
如果不需要預設項留空字串即可