我的控制器顶部有一个ActionFilter属性。
[HandleError]
[MyActionFilter]
public class AccountController : Controller
{
...
}
收到某个操作后,我想添加/更改一些路线值,然后重定向到正确的路线。
filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { lang = langName, controller = controllerName, action = actionName, id = idName }));
这很好用。但是,重定向始终设置为HTTP GET,并且由于我的某些操作设置为仅接收HTTP POST,因此失败。
有没有办法让重定向成为HTTP POST?
答案 0 :(得分:6)
有没有办法让重定向成为HTTP POST?
没有。动词GET是HTTP规范中重定向定义的基础。谈论 HTTP重定向和不同于GET的HTTP动词是没有意义的。
您可以直接返回视图,而不是重定向:
var result = new ViewResult
{
ViewName = "~/Views/Shared/SomeView.cshtml",
};
result.Model = new MyViewModel();
filterContext.Result = result;