2012-06-12 46 views
3

我在我的控制器中有這樣的私人功能。MVC3 Controller.Redirect(字符串)

private UserDetails GetUserDetails(int userid) 
{ 
    ... 
    if (some condition check is false) 
     Redirect("some other page in a different subdomain"); 

    return userDetails; 
} 

如果條件失敗,則執行Redirect語句,但執行不會停止。 userDetails返回給調用函數。沒有重定向到其他頁面。

我該如何強制重定向?

+0

爲什麼不傳回空,如果它失敗,並讓你的視圖句柄或忽略空? – Sean

回答

1

重定向返回一個結果 - 你打算從操作方法中使用它,如下所示:

public ActionResult MyAction() 
{ 
    if (check is false) 
    { 
     return Redirect("other url"); 
    } 
    // this code won't get executed after redirect 
} 

看起來你應該從你上面貼函數返回null,則檢查null和如果GetUserDetails返回null,則返回return Redirect("...")

1

有些情況下你不能重定向,雖然我不確定整個系列的規定是什麼。解決這個問題的一種方法是將字符串返回給視圖,並使用javascript執行window.location(url)以強制重定向。