我有一个包含多个提交按钮的表单:
using(Ajax.BeginForm("Submit", "myController", new AjaxOptions { HttpMethod = "Post" }))
{ %>
<button type="submit" name="submitType" value="submit_a">a</button>
<button type="submit" name="submitType" value="submit_b">b</button>
<% } %>
控制器方法如下:
[Authorize, HandleError, HttpPost]
public ActionResult Submit(string submitType)
{
//placeholder
}
使用IE(js开启或关闭)按钮会返回各自的submitType值,但Chrome和FireFox的submitType为null(当js打开时,js关闭时很好)
有人知道我怎么能解决这个问题吗?
(请注意我需要使用Ajax表单,因为它会进行部分回发/更新)
答案 0 :(得分:0)
Crap,前一个开发人员将BeginForm()标记放在无效的地方(在div中间的form标签的开头,一个完全独立的div中的form标签的结尾),而VS没有抛出任何错误,它导致无效的标记,导致FireFox和Chrome忽略并且不返回提交值! 一旦我纠正了标签位置,它就开始正常工作了。