mvc笔记

1. routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
new { controller = "Movie", action = "Details", id = "2" } // 参数默认值
);
其中的MVC的url对于的不是物理view地址,而是control中的公共方法,通过路由把control层对应到View层,

控制层构造数据并把数据传给视图,视图解析自己的内容,渲染成html标记,服务器把渲染成的html传递给客户端,客户端把html呈现出来。

公共方法不可以是静态的,也不可以重载。
静态:如果返回的是ViewResult,那么静态方法就不能调用父类的非静态方法,如view。而且
经过测试发现,返回的是string型,仍然不能成果跳转。
controller = "Movie", action = "Details", id = "2"代表默认路由MovieController下的
Details方法,参数为2。即url不提供其中任意一项的话,就由默认值替代。
2.ActionResult:动作结果。
他的子类有: ViewResult:代表HTML及标记 -- Controller基类的veiw方法。
EmptyResult:代表无结果 --Controller基类的Redirect方法。
RedirectResult:代表重定向到一个新的URL --RedirectToAction方法
RedirectToRouteResult:代表重定向到一个新的控制器动作 --RedirectToRoute方法
JsonResult:代表一个JSON结果,他可以用于AJAX应用程序 --Json方法
ContentResult:代表文本结果 --Content
3.MVC方法公开限制:
方法必须是公开的。
方法不能是静态的。
方法不能是扩展方法。
方法不能是构造函数,访问器或者设置器。
方法不能含有开放的泛型类型。
方法不能是基类的方法。
方法不能含有ref和out参数。
阻止公开方法被调用:
NonAction
4.Asp.net MVC路由
当创建asp.net MVC时,已经默认被配置使用Asp.net路由。Asp.net路由在两个地方设置:
第一:web.config的systen.web.httpModules节,system.web.httpHandlers节,system.webserver.modules
节,system.webserver.handlers。
第二:在Global.asax中创建路由表,在Applicatuon Start事件期间创建。
5.创建自定义路由
routes.MapRoute(
"Blog",
"Archive/{entryDate}",
new {Controller="Archive",action="Entry"}
);
自定义路由需要在默认路由前面。自定义Blog路由匹配任何以/Archive/作为开始的请求。
因此,它匹配所有下面的URL:
/Archive/12-25-2009
/Archive/10-6-2004
/Archive/apple
自定义路由讲即将到来的请求映射到名为Archive的控制器,并且调用Entry()的动作。当调用
Entry()方法时,条目日期作为entryDate参数进行传递。
public string Entry(DateTime entryDate)
{
return "You Requested the entry from " + entryDate.ToString();
}
6.创建路由约束
你可以使用路由约束来限制匹配特定路由的浏览器请求。可以使用正则表达式来制定一个路由约束。
routes.MapRoute(
"Product",
"Product/{productId}",
new {controller="Product",action="Details"},
new {productId=@"d+"}
);
7.Html Helper
HTML Helper只不过是一个返回字符串的方法。这个字符串可以代表你想要的任何类型。
举个例子,你可以使用HTML Helper来呈现标准的HTML标签,类似HTML<input>和<img>标签。
你也可以使用HTML Helpers来呈现更加复杂的内容,例如一个标签页或者一个数据库数据的HTML表格。
ASP.NET MVC框架包含下面的标准HTML Helper集合:
Html.ActionLink()
Html.BeginForm() : 可以使用@using(Html.BeginForm()){}来内包含
Html.CheckBox()
Html.DropDownList()
Html.EndForm() : 匹配Html.BeginForm
Html.Hidden()
Html.ListBox()
Html.Password()
Html.RadioButton()
Html.TextArea()
Html.TextBox()
8.自定义Html Helper
public class LabelHelper
{
public MvcHtmlString Label(string target,string text)
{
return MvcHtmlString.Create(String.Format("<label for='{0}'>{1}</label>"),target,text));
}
}
用<%@ Import Namespace="MvcApplication1.Helpers" %> 来导入

posted @ 2015-04-23 16:13  江境纣州  阅读(85)  评论(0编辑  收藏  举报