0

コントローラーには 2 つのアクションがあります。

    public ActionResult ReportRequest()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Report(ReportRequestObj rr, FormCollection formValues)
    {
        if (Request.HttpMethod != "POST")
            return RedirectToAction("ReportRequest");

        ReportingEngine re = new ReportingEngine();

        Report report = re.GetReport(rr);

        return View(report);
    }

私の問題は、「レポート」ページの URL がブラウザに保存され、それをクリックすると 404 が返されることです。これは、リクエストが送信されていないためです。

レポート要求ページにリダイレクトするハンドラーを入れましたが、デバッグ時にこれをまったくヒットしていないようです。

リクエストが投稿であるかどうかを判断し、そうでない場合は別のページにリダイレクトする他の方法はありますか?

ありがとう

4

2 に答える 2

2

アクションを追加

public ActionResult Report()
{
    return RedirectToAction("ReportRequest");
}

または単に[HttpPost]アクションから削除するReport

于 2012-10-12T09:48:51.183 に答える
0

そのリクエストはアクションに到達しないため、ここで 404 エラーを処理することはできません。POST 要求のみがそのコードに到着することを確認するアクション フィルターを使用しています。

GET リクエストに応答し、その中でビューを返す別のアクション メソッドを作成する必要があります。

[HttpGet]
public ActionResult Report()
{
    return View("ReportRequest");
}
于 2012-10-12T09:49:19.373 に答える