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

來源:互聯網
上載者:User
文章目錄
  • AntiForgeryToken
  •  DropDownList新加了預設項

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

 

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('');'/>") %>
編碼結果
&lt;script src=&quot;j.js&quot;>&lt;/script>&lt;div background='javascript:alert('');'/>

方法僅將引號 (")、“and”符號 (&) 和左角括弧 (<) 轉換為等效的字元實體。該方法比Encode/HtmlEncode方法快得多。

 

Encode 提供了HTMLENCODE功能

 

使用方法
<%=Html.Encode("<script src=\"j.js\"></script><div background='javascript:alert('');'/>")%>
編碼結果
&lt;script src=&quot;j.js&quot;&gt;&lt;/script&gt;&lt;div background='javascript:alert('');'/&gt;

RenderUserControl 改為 RenderPartial,並提供了更好的模板尋找方式

 

<%=Html.RenderUserControl("/Views/Shared/Menu.ascx") %>
改為
<% Html.RenderPartial("Menu");%>
注意,原來的<%=%>改了為一句語言,有分號結束,與RenderAction統一了

驗證控制項

 起到了伺服器端驗證作用,

效果如下:

 

使用方法如下:

Model:

    public class MyModel
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }

View:

     <h3>驗證控制項 </h3>
    <%using (Html.Form("home", "save", FormMethod.Post)) {%>
    <%=Html.TextBox("ID")%>
    <%=Html.ValidationMessage("ID",new {style="color:green"})%>
    <%=Html.TextBox("Name")%>
    <%=Html.ValidationMessage("Name")%>
    <%=Html.SubmitButton() %>
    <%
        }%>
    <div style="color: Red">
        <%=Html.ValidationSummary() %>
    </div>

 Controller:

public class 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" })%>

如果不需要預設項留Null 字元串即可

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.