5

次のコードブロックがあります。コードがどのように通過できるか混乱しています

Response.Redirect("~..")

確かにそうです。それを過ぎた行は自動的に実行されないと思いました。ここで基本的なものが欠けていますか?デバッガーが実際に次の行を実行していることがわかります。

    public ActionResult Index()
    {
        Response.Redirect("~/Default.aspx", true);

        string year =
           Utils.ConvertCodeCampYearToActualYear(
               Utils.GetCurrentCodeCampYear().ToString(CultureInfo.InvariantCulture));
        var viewModel = GetViewModel(year);
        return View(viewModel);
    }
4

2 に答える 2

8

あなたはそれをする必要がありreturnます。関数です。あなたの場合、次を使用できますRedirect

return Redirect("~/Default.aspx");
于 2013-03-29T16:48:59.353 に答える
4

すべてResponse.Redirect()が (実際には)location=指定された URI に応答ヘッダーを設定し、http ステータスを に設定します302 Found。また、新しい URI へのリンクを含む小さなスタブ HTML も応答に書き込みますが、これは単なる飾りです。

boolフラグで処理を継続するかどうかを指定できるオーバーロードを使用しない限り、処理は続行されます。そのboolフラグが true の場合、リクエストを処理しているスレッドを中止し、ThreadAbortException副作用として a をスローして、レスポンス処理を終了します。

于 2013-03-29T17:00:02.393 に答える