2013-10-17 64 views
0

我試圖提交從局部視圖形式,但不斷收到404
這裏的形式:簡單的MVC路由問題

@model PMP.WebUI.Models.ViewModel.VMTakeQuiz 

@using (Html.BeginForm("Quiz", "QuizController", FormMethod.Post, new { id = "take-quiz-form" })) 
{ 
.. 
<input type="submit" name="LaunchQuiz" value="Launch Quiz!" class="submit-button" /> 
.. 
} 

這裏的地圖路線分配(這是通常的後第二次分配忽略AXD的一個):

routes.MapRoute(
      "Quiz", 
      "Quiz/Quiz", 
      new { controller = "Quiz", action = "Quiz" } 
); 

而這裏的控制器及其作用:

public class QuizController : Controller 
{ 
     [HttpPost] 
     public ActionResult Quiz(VMTakeQuiz quiz) 
     { 
      return null; 
     } 
} 

我得到的是404上:Requested URL: /QuizController/Quiz

我應該改變路線表單提交給定的行動?

+0

爲什麼你有自定義路由,而不讓默認路由處理呢?從我所知道的情況來看,刪除您的自定義路線會很好。 – AliK

回答

3

通行證只是控制器的名稱,而不喜歡

「控制器」後綴
@using (Html.BeginForm("Quiz", "Quiz", FormMethod.Post, new { id = "take-quiz-form" })) 
{ 
.. 

請求的URL應該是:/測驗/測驗

1

對於控制器不需要追加controller suffix他們的名字

@using (Html.BeginForm("Quiz", "Quiz", FormMethod.Post, new { id = "take-quiz-form" })) 

也嘗試爲您的視圖和控制器有不同的名稱。 :)