3

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

不确定这是否是通常的行为,或者我是否遗漏了什么......

@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();
 }

提前致谢!

4

1 回答 1

2

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

于 2013-08-26T05:00:01.183 回答