备注: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
-》参数传递与接收
-》自定义路由规则与调试