我有一段代码,它使用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();
}
提前致谢!
答案 0 :(得分:2)
通常@Html.BeginForm()
会将<form>
标记的操作呈现为指向此处的路径详细信息。因此,在部分视图中,您实际上是渲染回外部页面。 (是的,令人费解。)如果您想专门将表单帖子指向特定路线,请将其他参数添加到@Html.BeginForm()
。见http://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v=vs.108).aspx