標籤:c code ext http a int
HttpUtility.HtmlEncode來預先處理使用者輸入,這能阻止使用者向視圖中用連結注入js代碼或html標記
1、[Required]:非空驗證
2、[StringLength(**)]:設定字元的長度
2.1、[StringLength(**,MinimumLength=*):設定字元長度MinimumLength:設定最短長度
3、[RegularExperssion(@"Regex")]:正則驗證
4、[Range(,)]:Range特性用來指定數實值型別值的最小值和最大值,Range特性可用於int類型和double類型,它還有一個重載Range(Typeof(decimal),"0.0","49.99"]
二。驗證特性;
2.1[Remote("CheckUserName","Account")]:指定了執行此驗證所需要調用的Action方法,
以及此Action所在的Controller。前面是action後面是controller
2.2[Compare("驗證類型")]:用於確保模型對象的兩個屬性擁有相同的值
2.3要對錶單進行驗證時得把submit放在表單內
三:ViewData,TempData,ViewBag
ViewData 和 TempData 都可以傳遞弱類型資料,區別如下:
ViewData 只在當前 Action 中有效,生命週期和 View 相同;
TempData 的資料至多隻能經過一次Controller傳遞,並且每個元素至多隻能被訪問一次,訪問以後,自動被刪除。
TempData 一般用於臨時的緩衝內容或拋出錯誤頁面時傳遞錯誤資訊,可以將TempData 在使用之前儲存到相應的 ViewData 中以備迴圈使用。
TempData 可以跨頁面傳值
ViewBag和ViewData生命週期相同,也是對但前View有效,不同的是ViewBag的類型不再是字典的索引值對結構,而是dynamic動態類型,屬於MVC3裡面新增的部分。
四:
Controller中的public的方法都被當作是Action方法。
五:@ajax.ActionResult
使用@ajax.ActionResult時應該先引用<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>檔案
六: @Html.Partial("_LogOnPartial"):相當於使用者控制項,引用名為“_LogOnPartial”的使用者控制項
A.Layout屬性:等同於原來的MasterPageFile屬性.
[email protected]()方法:直接渲染整個View到預留位置處,而不需要原來所使用的<asp:Content />.
[email protected]()方法:渲染指定的頁面到預留位置處.
[email protected]方法:聲明一個預留位置,和原來的<asp:ContentPlaceHolder />功能類似.
[email protected]標記:對@RenderSection方法聲明的預留位置進行實現,和原來的<asp:Content />功能類似.
URL:"controll"/"Action"
RenderAction:"Action"/"Controll"
Html.RenderPartial與Html.RenderAction這兩個方法都是用來在介面上嵌入使用者控制項的。
@Html.RenderPartial("使用者控制項名")//必須放在調用者同一目錄下,也可以放在View/Shared中
@Html.RenderAction("Action","Control");//
@Html.ActionLink("名字","Action","Controll","參數","屬性名稱")
六:路由
在這裡提及一下string[] namespaces參數.~
當在你的MVC3應用程式裡建立了不是以Controllers結尾的控制器類命名空間時,就可以通過設定這個屬性來讓路由系統在url匹配時應該去找那些命名空間
routes.MapRoute("namespaces",
"{controller}/{action}",
null, null,
new string[] { "MvcApplication1.Custom" }
);
設定後此參數後路由系統就會去找
MvcApplication1.Controllers, MvcApplication1.Custom下帶Controller結尾的繼承於Controller的類了!
⑦:URL重寫的例子
"{controller}.{action}/{id}", // 帶有參數的 URL//URL格式為http://localhost:2741/home.Index
在url重寫中的參數必須和路由中定義的參數一致比如要傳{productName}-{id}//頁面用的時候傳的也是要new{productName="xx",id="xx"}
FormCollection:可以擷取表單傳過來的值(不推薦使用)具體參照《使用FormCollection的陷阱》
///例
public ActionResult Index(FormCollection collection)
{
string name = collection["name"];
return View();
}
七、CodeFrist
設定檔的名字name必須和繼承DbContext的類的名字相同,程式運行起來才會自動去找到設定檔的連接字串(反射。。。。。對命名空間要求很嚴格)
AsNoTracking:返回一個新的查詢返回的實體將不會被緩衝在DbContext或ObjectContext的。
Database.SetInitializer<DbEntities>(null);//不重新設定資料庫