Asp.net Mvc Preview 5 体验--实现ActionSelectionAttribute来判断是否为AJAX请求而选择不同的Action
2008-08-30 19:13
731 查看
ActionSelectionAttribute是ASP.NET MVC Preview 5 提供的一个抽象基类,通过ActionSelectionAttribute的命名我们就可以猜想到这个Attribute是用来选择(匹配)Action方法的。该抽象类只提供了一个抽象的方法 IsValidForRequest,该方法会在Controller的ActionInvoker被调用。如果一个Action加上了该Attribute,那么只有当IsValidForRequest方法返回true的时候,当前的请求才会匹配该Action。
public class GetByAjaxAttribute : ActionSelectionAttribute
public class GetByAjaxAttribute : ActionSelectionAttribute
[ActionName("Add"), AcceptVerbs("GET")]
public ActionResult AddByGet()
[ActionName("Add"), AcceptVerbs("POST"), GetByAjax(true)]
public ActionResult AddByAjax()
//这里要加上GetByAjax(false)哦,
//否则当POST过来的时候,这个也是符合条件的,
//则会匹配两个Action(这个和上面一个),就抛出异常了
[ActionName("Add"), AcceptVerbs("POST"), GetByAjax(false)]
public ActionResult AddByPost()
{
//Do Your Thing here
ViewData["Message"] = "通过POST方式访问";
return View();
}
最后是该文章的的示例代码: ActionSelectionAttributeDemo.rar
Enjoy!
参考文章:How a Method Becomes An Action
public class GetByAjaxAttribute : ActionSelectionAttribute
public class GetByAjaxAttribute : ActionSelectionAttribute
[ActionName("Add"), AcceptVerbs("GET")]
public ActionResult AddByGet()
[ActionName("Add"), AcceptVerbs("POST"), GetByAjax(true)]
public ActionResult AddByAjax()
//这里要加上GetByAjax(false)哦,
//否则当POST过来的时候,这个也是符合条件的,
//则会匹配两个Action(这个和上面一个),就抛出异常了
[ActionName("Add"), AcceptVerbs("POST"), GetByAjax(false)]
public ActionResult AddByPost()
{
//Do Your Thing here
ViewData["Message"] = "通过POST方式访问";
return View();
}
最后是该文章的的示例代码: ActionSelectionAttributeDemo.rar
Enjoy!
参考文章:How a Method Becomes An Action
相关文章推荐
- ASP.NET MVC 利用ActionFilterAttribute来判断用户是否登陆等等
- dhl:asp.net mvc下用jQuery通过AJAX 实现HTTP 请求加载远程数据
- ASP.NET 如何判断当前请求是否是Ajax请求
- ASP.NET MVC 实现 AJAX 跨域请求
- asp.net mvc 实现判断用户是否登录的两种方式
- ASP.NET MVC 使 Controller 的 Action 只接受 Ajax 请求。
- ASP.NET MVC 实现 AJAX 跨域请求
- ASP.NET MVC 实现AJAX跨域请求方法《1》
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- ASP.NET MVC的Ajax.ActionLink 的HttpMethod="Get" 一个重复请求的BUG
- 实现Ajax增强用户体验ASP.NET MVC 3
- Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型
- asp.net mvc 5 利用ActionFilterAttribute实现权限过滤
- Asp.Net MVC实践 - 自定义ActionResult实现Rss输出 (基于ASP.NET MVC Preview 3)
- Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型 【转】
- Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型
- Asp.net Mvc Codeplex Preview 5 第三篇 实现Action参数传递繁杂类型
- ASP.NET MVC 实现 AJAX 跨域请求
- ASP.NET MVC 实现AJAX跨域请求的两种方法
- [翻译]ASP.NET MVC 3 开发的20个秘诀(十三)[20 Recipes for Programming MVC 3]:实现Ajax增强用户体验