3

私のコントローラーには、このようなプライベート関数があります。

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

    return userDetails;
}

条件が失敗した場合、リダイレクトステートメントは実行されますが、実行は停止しません。userDetailsは呼び出し元の関数に返されます。他のページへのリダイレクトはありません。

リダイレクトを強制するにはどうすればよいですか?

4

2 に答える 2

1

それらのセット全体の規定が何であるかはわかりませんが、リダイレクトできない状況があります。これを回避する1つの方法は、文字列をビューに返し、javascriptwindow.location(url)にリダイレクトを強制させることです。

于 2012-06-12T23:00:39.830 に答える
1

リダイレクトは結果を返します-あなたは次のようにActionメソッド内からそれを使用することを意図しています:

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

上記で投稿した関数からnullを返し、nullをチェックしreturn Redirect("...")、GetUserDetailsがnullを返したかどうかを確認する必要があるようです。

于 2012-06-12T23:06:16.553 に答える