1. 在Controller中获取当前Route信息
比如获取当前的controller信息,
RouteData.Values["controller"]
key是Route匹配的那些参数
2. Action的返回值中的ActionResult种类
Controller中返回的Action Result种类
类型 |
解释 |
返回方法 |
ContentResult | 返回一个字符串 | Content |
EmptyResult | No Response | |
FileContentResult FilePathResult FileStreamResult |
返回一个文件 | File |
HttpUnauthorizedResult | 返回403 | |
HttpNotFoundResult | 返回404 | |
JavaScriptResult | 返回一段js | JavaScript |
JosnResult | JSON格式数据 | Json |
RedirectResult | 跳转到期它URL | Redirect |
RedirectToRouteResult | 转到其它Action,或者其它Controller的Action | RedirectToRoute RedirectToAction |
ViewResult PartialViewResult |
返回由View engine处理 | View PartialView |
还可以直接把Action方法的返回值改成string, 返回一个字符串。
3. 如何传值到View?
使用ViewBag、ViewData
ViewBag是dynamic类型,你可以随意的扩展和保存你需要的数据
使用Model
return View(model) 就可以将model作为强类型View的显示主体。
4. 使用Filter来控制Action的访问
asp.net MVC有很多的Filter来影响Action的访问, 这些Filter也是Attribute,可以直接写在Action或者Controller的头上。
系统Filter
名称 |
描述 |
OutputCache | 缓存 |
ValidateInput | 关闭验证 |
Authorize | 验证访问的权限 |
ValidateAntiForgeryToken | 防止跨站攻击 |
HandleError | 处理程序异常 |
Filter使用地方
* 可以直接写在Action或者Controller的头上。
* 在全局注册
在Application_Start()中,注册Filter, 这样每个request都会受到这些Fiterl的影响。
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
编写自定义的Filter
编写类继承ActionFilterAttribute, 覆盖比如OnActionExecuting这些方法。
Filter可以用来做日志记录,权限验证等都非常方便。