2013-02-28 42 views
0

我不會有一個視圖叫做Test。但是,Home控制器Test中有一個方法未創建的視圖會顯示

一切工作正常,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 
     } 
+1

嘗試'返回視圖(「指數」,男);' – 2013-02-28 09:21:01

+0

謝謝你,我用你的方法 – 2013-02-28 09:54:30

回答

0

在URL

「../Home/Test」

測試是行動因此是工作的罰款。

如果您不想顯示該URL做,改名行動「試驗」到「指數」,並更新其引用

和使用(可選)

return View("Index", m) 
-1

試試這個:

public ActionResult Test(HttpPostedFileBase f) 
{ 
var m = new HomeModel(); 
..// Other code goes here 
return RedirectToAction("Index"); 
} 
+0

在哪裏模型傳遞? – 2013-02-28 09:23:56

0

如果您正在使用MVC標準設置,它不是視圖,但該方法,這是顯示在瀏覽器中。該方法默認返回視圖(但是這是可選的)。

所以你需要做的就是將你的測試方法重新命名爲索引並將[HttpPost]放置在它上面。

[HttpPost] 
    public ActionResult Index(HttpPostedFileBase f) 
     { 
      var m = new HomeModel(); 
      ..// Other code goes here 
      return View(m); 
     } 
0
return View("../Home/Index", m); 

這不會將您重定向到Index;它只會顯示您的索引查看。如果你想瀏覽器自動從/Test將網址變更爲/Index,你必須,而不是這樣做:

return RedirectToAction("Index");