我需要[POST]
在控制器中实现ActionFilterAttribute ActionResult()。问题是,如果验证失败,我会尝试“重定向”到页面...但是它不起作用。验证运行,但是然后返回到ActionResult()
下一行,最后返回视图时,才“重定向”到验证中列出的页面。最终,我需要停止ActionResult()语句并“重定向”到验证中列出的页面。我尝试了OnActionExecuting()
,OnActionExecuted()
但是没有用
我需要...
filterContext.HttpContext.Response.Redirect (loginUrl, true);
逃跑,“重定向”指示的页面
我的代码:
[HelperSomeValidations("")]
[HttpPost]
public ActionResult Create(Pais pais)
{
try
{
PaisBLL.saveNew(pais);
}
catch (Exception ex)
{
ViewBag.error = ex;
return View(“Error”);
}
return RedirectToAction(“Index”);
}
public class HelperSomeValidations : ActionFilterAttribute
{
public HelperSomeValidations(String permiso)
{
this.permiso = permiso;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var user = filterContext.HttpContext.Session["coco"];
if (user == null) //validates if the user just login
{
//send them off to the login page
var url = new UrlHelper(filterContext.RequestContext);
var loginUrl = url.Content(“~/Usuario/Login”);
filterContext.HttpContext.Response.Redirect(loginUrl, true);
}
else
{
if (permission != “”)
{
//does some validations with “permission”
}
}
}
}
ks!
无需调用filterContext.HttpContext.Response.Redirect(loginUrl, true)
,您需要将设置filterContext.Result
为RedirectResult
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句