你的位置:首页 > 软件开发 > ASP.net > ASP.NET MVC 5 Web编程3

ASP.NET MVC 5 Web编程3

发布时间:2015-04-01 00:00:20
Controller基础一. 访问修饰符1.1 类的访问修饰符Controller类的访问修饰符必须是public,url才能被拦截。internal能编译通过,但无法拦截url请求。private、protected、protected internal不能通过编译。1.2 方 ...

Controller基础

一. 访问修饰符

1.1 类的访问修饰符

Controller类的访问修饰符必须是public,url才能被拦截。

ASP.NET MVC 5 Web编程3

internal能编译通过,但无法拦截url请求。private、protected、protected internal不能通过编译。

1.2 方法的访问修饰符

Controller中方法的访问修饰符必须是public,url才能被拦截。其它类型的访问修饰符会使该方法无法拦截url请求。

 

二. 特性

可使用的特性有很多,这里只描述常用的一些特性,同样,类和方法的可使用特性分别描述。

2.1 类可使用特性

2.1.1 Authorize特性(System.Web.Mvc.AuthorizeAttribute)

ASP.NET MVC 5 Web编程3

当然,通常的用法不是直接在Controller上标记这个特性,而是标记自定义特性(继承自AuthorizeAttribute)。通过扩展AuthorizeAttribute,实现权限控制。可以称它为“权限特性”吧。关于Authorize特性,后面会写一篇文章讲述MVC里的权限控制实现。

2.1.2 AllowAnonymous特性(System.Web.Mvc.AllowAnonymousAttribute)

ASP.NET MVC 5 Web编程3

与Authorize特性相对应,表示跳过验证(如果你使用自定义Authorize特性做权限控制的话)。

2.1.3 HandleError特性(System.Web.Mvc.HandleErrorAttribute)

ASP.NET MVC 5 Web编程3

这个特性的含义跟它的名字一样,是用来处理异常信息的。上面的特性标记表示:当UserInfoController类中抛出异常时,MVC将默认显示Error视图(~/Views/Shared目录下)。同样,你可以扩展HandleError特性,实现日志记录,出错友好提示等功能。

2.1.4 ValidateAntiForgeryToken特性(System.Web.Mvc.ValidateAntiForgeryTokenAttribute) 

ASP.NET MVC 5 Web编程3

此特性用于阻止CSRF(跨站请求伪造)攻击。现在没有证据表明这个特性一定对CSRF攻击有效,本人在此保留意见。

如果以上MVC类使用特性没有列举出您经常使用的特性之一,还请不吝赐教,留言给我。在此感谢~

2.2 方法可使用特性

2.2.1 ActionName特性(System.Web.Mvc.ActionNameAttribute)

ASP.NET MVC 5 Web编程3

此特性用于指定Action的名称。如上图例,被此特性标记后,url拦截的action名称将是Default,而不是Index。如果你使用View()来返回页面,则MVC会寻找Default.cshtml,而不是Index.cshtml。如果你想指定View,则要使用View("viewName")这样的方法。

2.2.2 NonAction特性(System.Web.Mvc.NonActionAttribute)

ASP.NET MVC 5 Web编程3

此特性用于标记Action无效,被标记的Action将无法拦截url请求(普通方法)。将访问修饰符换成private也可以实现类似效果。

2.2.3 HttpGet,HttpPost,HttpDelete,HttpPut特性(System.Web.Mvc.xxxAttribute...)

ASP.NET MVC 5 Web编程3

限制操作方法仅处理对应的Http请求。

2.2.4 Bind特性(System.Web.Mvc.BindAttribute) 

ASP.NET MVC 5 Web编程3

此特性用于限制绑定字段,Bind特性的参数有三个:Prefix前缀,Include包含,Exclude排除。

 

三. Action的参数和返回值

3.1 参数

比如常用信息列表的编辑功能的Action,代码如下:

    public ActionResult Edit(get='_blank'>string id = "")    {      UserInfoViewModel model = CoreDBContext.GetModelByID(id);      return View("Detail",model);    }

原标题:ASP.NET MVC 5 Web编程3

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。