简单的mvc路由问题

时间:2013-10-17 02:25:37

标签: asp.net-mvc-4 asp.net-mvc-routing

我正在尝试从局部视图提交表单,但继续获得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

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

2 个答案:

答案 0 :(得分:3)

仅传递控制器名称而不使用“控制器”后缀,如

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

请求的网址应为:/ Quiz / Quiz

答案 1 :(得分:1)

对于控制器,您无需附加controller suffix名称

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

还尝试为视图和控制器设置不同的名称。 :)