備註:javascript
過去MVC模式並不適合小型甚至中等規模的應用程序,這樣會帶來額外的工做量,增長應用的複雜性。但如今多數軟件設計框架,能直接快速提供MVC骨架,供中小型應用程序開發,此問題再也不存在。對於開發存在大量用戶界面,而且邏輯複雜的大型應用程序,MVC將會使軟件在健壯性、代碼重用和結構方面上一個新的臺階。儘管在最初構建MVC模式框架時會花費必定的工做量,但從長遠的角度來看,它會大大提升後期軟件開發的效率。
php
筆記:css
-》Razor的使用:C#代碼與html混編
-》HtmlHelper:快速完成表單佈局
-》行爲向視圖傳遞數據:ViewData["鍵"],能夠簡寫爲ViewBag.鍵
-》強類型頁面
爲何要使用強類型頁面:實現了編譯時錯誤檢查,防止對於對象的屬性的編寫錯誤
怎麼用:@model 類型,寫在頁面的最上面
訪問:ViewData.Model(可簡寫爲Model),Html.***For(c=>c.***)
-》難點:擴展方法,lambda表達式html
筆記:vue
-》行爲的本質就是方法
-》返回類型:ActionResult
-》行爲的重載必須同時符合兩點:1.參數不一樣;2.請求方式不一樣 (爲啥參數不能區分呢 由於參數能夠自動裝配 沒法僅僅經過參數來區分)
-》數據的傳遞與接收:
傳遞:支持get、post方式傳遞
接收:Request["鍵"],自動裝配(post的name和行爲參名同樣才能實現)java
其餘補充:jquery
1.作列表頁面:(這種方式本身試了好像不行)ios
controller裏面行爲返回ViewBag.Model = List<Person> list;c++
view頁面強類型設置爲@using model List<**.Person>git
而後遍歷
@foreach(var item in Model)
{
遍歷輸出...
item.xxx;
}
本身嘗試這個寫法能夠:
控制器:
public ActionResult CoachList() { List<UserDTO> coachList = _userBLL.GetCoachList(); return View(coachList); }
頁面:
頭部:
@model List<XX.DTO.UserDTO>
內容:
@foreach (var item in Model) { <a>@item.NickName</a> }
其餘方式:
控制器中:
public ActionResult CoachList() { List<UserDTO> coachList = _userBLL.GetCoachList(); CoachListViewModel viewModel = new CoachListViewModel(); //CoachListViewModel爲自定義視圖實體類型 viewModel.CoachList = coachList; return View(viewModel); }
自定義視圖實體類型CoachListViewModel
namespace Web.Models.ViewModel { public class CoachListViewModel { public List<UserDTO> CoachList { get; set; } } }
頁面中:
頂部:@model Web.Models.ViewModel.CoachListViewModel
內容:
@foreach (var item in Model.CoachList) { <a>@item.NickName</a> }
2.controller中行爲的自定義類型參數自動裝配:(view中頁面強類型請求過來)
public ActionResult Add(Person person)
{
裝配過程:
1.先建立並初始化一個Person對象
2.而後把post過來的值,經過name做爲鍵去找值,若是有的話自動裝配賦值給Person對象屬性。
}
備註:
若是使用的是RouteDebugger,則不須要在Global中註冊,而是經過web.config中爲appsettings添加子節點<add key="RouteDebugger:Enabled" value="true"/>
備註:
#region 路由規則示例 //新聞顯示頁 routes.MapRoute( name: "NewsShow", url: "News/{year}-{month}-{day}-{id}", defaults: new { controller = "NewsHome", action = "Show" }, constraints: new { year = @"^\d{4}$", month = @"^\d{1,2}$", day = @"^\d{1,2}$" } ); //新聞列表頁 routes.MapRoute( name: "NewsList", url: "News/{type}-{pageindex}-{pagesize}", defaults: new { controller = "NewsHome", action = "List" } ); //新聞首頁 routes.MapRoute( name: "NewsIndex", url: "News/{*values}", defaults: new { controller = "NewsHome", action = "Index" } ); //網站首頁 routes.MapRoute( name: "Index", url: "{*values}", defaults: new { controller = "Home", action = "Index" } ); #endregion
筆記:
-》4個類型:Route,RouteData,RouteCollection,RouteTable
-》參數傳遞與接收
-》自定義路由規則與調試