代码改变世界

Asp.net MVC – Controller

2012-09-06 15:54  JustRun  阅读(...)  评论(...编辑  收藏

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可以用来做日志记录,权限验证等都非常方便。