ActionResult子類演示
1、ViewResult() -->action方法中要想返回視圖,則要使用ViewResult (MVC開發中用的最多)
2、ContentResult() -->返回內容之用(特點,可以不需要有對應的視圖) Home/ContentResultDemo中有示例
3、JsonResult() -->HomeController 的JsonDemo() 可以用作Ajax請求 ,注意:如果是get請求,則一定是要在Json()中寫入:JsonRequestBehavior.AllowGet
4、FileResult() -->HomeController 的FileResultDemo() 可以用作畫驗證碼,也可以利用它來實現文件的下載
5、HttpStatusCodeResult() --》用戶自己設置需要響應的狀態碼
6、javaScriptResult 注意:Javascript配合視圖中的<script rc="">
7、RedirectResult():執行頁面跳轉本質上是在響應報文頭中產生了 Location:要跳轉的頁面的虛擬路徑 命令
8、RedirectToRouteResult :當系統中路由規則比較多的時候,可以由程序員指定使用哪個路由規則來生成url
_ViewStart.cshtml:
View根目錄下的_ViewStart.cshtml 先執行 然后再執行對應文件夾下的_ViewStart.cshtml 最后執行訪問的cshtml頁面
.NET里面webform的后綴是aspx WCF和WebService的后綴是asmx 一般處理程序后綴是ashx
MVC布局頁:
@RenderBody() 占位符 將來會被使用此布局的子頁面內容覆蓋掉 只能在layout中出現一次
@Style.Render(); @Script.Render(); 獲取Bundle中的樣式和js文件 根據虛擬路徑找到該虛擬路徑下注冊好的所有物理文件響應給瀏覽器 使用原因:減少http請求 自動壓縮js和CSS的大小 方便程序員調用
分部視圖:
分部視圖是什么? 類似于asp.net webform(aspx)中的自定義控件.ascx
作用:可以將相同的邏輯塊寫到分部視圖中,供其他視圖來使用
引用:@Html.RenderAction(PartialView,controller )
@RenderSection(“script”,required:false) 表示script可以在子類中重寫 也就是說有此占位符才可以在子類寫js。RenderSection 所定義的標簽,可以被子頁面重寫,如果required設置成true,則必須子頁面重寫,如果是false可以不重寫也可以重寫
在cshtml視圖上,如果將視圖變成一個List<GroupInfo>的強類型視圖,那么在使用@Html.DisplayNameFor(a=>a.GroupId)會報錯,這是因為Razor視圖經過編譯發現List是一個具體的class所以a就推斷成List<GroupInfo>,可以通過將List<GroupInfo>改成IEnumerable<GroupInfo>來解決
html控件:
@Html.ActionLink("跳轉","About","Home",new { Word ="a"},new { @class="aa",@id="abc"})
相當于:<aclass="aa" href="/Home/About?word=a" id="abc">跳轉</a>
MVC路由
/路由支持默認值 如下的Api
routes.MaPRoute(
name: "Default",
url: "Api/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
//通過正則確定參數的類型
,constraints:new {id="//d+"},
//定義了此路由的命名空間
namespaces: new string[] { "MVCRoute.Controllers" }
//好處:
//1、可以自動去MVC站點的bin目錄查找指定命名空間下的控制器類,大大節省了查 找時間,效率更優
//2、方便同一個路由規則在不同控制器之間的切換
//忽略路由
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//忽略某一種拓展資源或拓展名
routes.IgnoreRoute("{resource}.do/{*pathInfo}");
//MVC中有2種視圖引擎 一種是aspx 另一種是Razor 并且排序為 1.aspx視圖引擎 2.Razor視圖引擎 使用此方法可以把aspx的搜索引擎屏蔽掉 提高搜索效率
在MVC項目下的Global文件中加入:
ViewEngines.Engines.RemoveAt(0);
新聞熱點
疑難解答