Html.BeginForm在局部视图中?

时间:2013-05-21 17:41:20

标签: asp.net-mvc-4

我有一段代码,它使用Html.BeginForm从文本框向控制器提交值。当我把它放在一个视图中时,它工作正常。也就是说,调用控制器的动作方法。但是,当我将此代码块放在将在View中呈现的局部视图中时,控制器的操作永远不会被调用。

不确定这是否是通常的行为,或者我是否遗漏了某些内容......

@using (Html.BeginForm("TestAction", "Home",  FormMethod.Post, new { id = "formId" }))
{<table>
   <tr>
        <td>Data Date</td>
        <td>@Html.TextBox("date")</td>
    </tr>    
   <tr>
        <td></td>
        <td><input id="btnRun" type="submit"  value="submit" /></td>
   </tr>

}

控制器:

 [HttpPost]
 public ActionResult TestAction(string date)
 {
     [doing something......]
     return View();
 }

提前致谢!

1 个答案:

答案 0 :(得分:2)

通常@Html.BeginForm()会将<form>标记的操作呈现为指向此处的路径详细信息。因此,在部分视图中,您实际上是渲染回外部页面。 (是的,令人费解。)如果您想专门将表单帖子指向特定路线,请将其他参数添加到@Html.BeginForm()。见http://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v=vs.108).aspx