0

と呼ばれるビューがありませんTest。ただし、コントローラーには。というメソッドがあります。HomeTest

すべてが正常に機能し、メソッドが実行され、コードで指定されているようにビューにTestリダイレクトされます。Indexただし、ブラウザでは、URLはであり、では../Home/Testありません../Home/Index。ビューという名前がないTestのに、なぜこれが表示されるのですか?このURLをブラウザに表示したくありません。どうすればこれを解決できますか?

意見:

  @using (Html.BeginForm("Test", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{

    <input type="file" name="file" />
    ..// Other code
}

C#

public ActionResult Test(HttpPostedFileBase f)
        {
            var m = new HomeModel();
            ..// Other code goes here
            return View("../Home/Index", m); // Will be returning the Index View
        }
4

4 に答える 4

0

MVC の標準設定を使用している場合、ブラウザに表示されるのはビューではなくメソッドです。このメソッドは、デフォルトで View を返します (ただし、これはオプションです)。

したがって、テスト メソッドの名前を Index に変更し、その上に [HttpPost] を配置する必要があります。

    [HttpPost]
    public ActionResult Index(HttpPostedFileBase f)
        {
            var m = new HomeModel();
            ..// Other code goes here
            return View(m);
        }
于 2013-02-28T09:24:28.357 に答える
0
return View("../Home/Index", m);

にリダイレクトされませんIndex。インデックスビューが表示されるだけです。ブラウザで URL を から に自動的に変更する/Test場合/Indexは、代わりに次のようにする必要があります。

return RedirectToAction("Index");
于 2013-02-28T09:49:29.770 に答える
-1

これを試して:

public ActionResult Test(HttpPostedFileBase f)
{
 var m = new HomeModel();
 ..// Other code goes here
 return RedirectToAction("Index");
}
于 2013-02-28T09:22:11.960 に答える