0

我正在尝试从部分视图提交表单,但不断收到 404。
这是表单:

@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

我应该更改什么以将表单提交路由到给定的操作?

4

2 回答 2

3

仅传递没有“控制器”后缀的控制器名称,例如

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

请求的 URL 应该是:/Quiz/Quiz

于 2013-10-17T04:44:01.293 回答
1

对于控制器,您不需要附加controller suffix他们的名字

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

还要尝试为您的视图和控制器使用不同的名称。:)

于 2013-10-17T04:45:28.773 回答