簡體   English   中英

ASP.NET MVC從屬性重定向

[英]ASP.NET MVC redirect from attribute

我正在嘗試從方法屬性執行重定向。 它似乎工作:

public class MyAttribute: ActionFilterAttribute {
    [..]
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        [..]
        filterContext.HttpContext.Response.Redirect(urlToRedirectTo, true);
        [..]

唯一的問題是重定向是在它附加到的方法結束后執行的,而我想重定向以防止執行該方法。

有幫助嗎? 謝謝

您可以通過將ActionResult分配給filterContext.Result來阻止執行操作方法。 例如:

filterContext.Result = new RedirectResult(urlToRedirectTo);

你需要添加

filterContext.HttpContext.Response.End();

編輯:頂部是錯的,底部是正確的

這應該工作

filterContext.Result = new RedirectResult(UrlToRedirectTo);

如果你返回一個ActionResult然后它會被動作本身執行,所以這應該跳過動作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM