由于工作需要,就先写一下MVC以及WebAPI了。
MVC处理过程:在服务器端收到请求时,路由定义了应该调用的控制器,以及应该调用的控制器动作。控制器负责返回结果。他可以使用一个模型来工作,最终返回一个视图结果。
根据视图结果选择一个视图引擎,它会搜索合适的视图。视图的结果放在响应中返回。在MVC体系结构中优先使用约定而不是配置。
定义路由:方便使用带链接的动作,而将Home定义为默认控制器,相连接添加额外的项,或者使用更多参数。
routes.MapRoute(
name:"Language",
url:"{language}/{controller}/{action}/{id}",
defaults:new{controller="Home",action="Index",id=UrlParameter.Optional},
contains:new{language=@"(en)\(de)"}
);
在映射路由时可以指定约束。这样一来,就只能使用约束定义的URL.上面的约束用正则表达式定义了language的参数只能是en\de
如果某个链接只允许使用数字,可以使用下面约束:
routes.MapRoute(
name:"Produts",
url:"{controller}/{action}/{productId}",
defaults:new{controller="Home",action="Index",productId=UrlParameter.Optional},
contains:new{productId=@"\d+"}
);
地址:http://localhost:8001/Home/Add/7/3
routes.MapRoute(
name:"MultipleParameters",
url:"{controller}/{action}/{x}/{y}",
defaults:new{controller="Home",action="Index"}
);
Controller动作可以返回任何东西:字符串、Int、图像的字节、视频、XML、JSON、Html等.
HttpUtility.HtmlEncode("ss")
使用Content方法返回简单的文本内容,方法允许指定内容、MIME类型和编码。
返回JavaScript(<sript>function foo{alert("foo");}</script>);
返回Json(m,JsonRequestBehavior.AlloeGet);
通过使用Controller的Redirect方法,客户端接受HTTP重定向请求。Redirect("http://www.baidu.com");
RedirectToRouteResult允许指定路由名称,控制器,动作和操作参数。RedirectToRouteResult(new{controller="home",action="hello"});
File方法可以返回FilePathResult、FileContentResult、FileStreamResult。File("~/Image/a.jpg","image/jpg")
在视图中,服务端代码使用Razor语法@sign:编写。向视图传递数据,可使用ViewDataDictionary,ViewData,ViewBag等。使用using关键字打开命名空间。
布局:ViewBag.Title可以在内容也设置,使用RenderBody方法呈现内容页。
可使用HtmlHelp,它可以自定义。分区:布局也定义RenderSection("PageNav",request:false);false 可有可无。内容页使用@section PageNav{......}
部分视图:@Html.Partial("页面",数据);控制器返回:PartialView("页面",数据);调用控制器:@Html.Action();jq调用;$("div").load("地址").