这个表单有多个提交按钮,当点击时,它调用一个简单的JavaScript函数来改变一个隐藏输入的值(函数被称为“setHidden”。这个工作之前,在其他一些不相关的代码之后,它已经停止工作了。 从本质上讲,它应该调用的动作永远不会被调用,而是似乎默认返回到以前的URL。
表格:
<form action="/League/RemoveOwner" method="post">
<input type="hidden" value="1007" name="lid"/>
<input type="hidden" value="0" id="index" name="index"/>
<input type="image" src="../../Resources/Images/Delete.png"
height="12" alt="Remove Owner" title="Remove Owner"
onclick="setHidden('index', '1031')"/></a> coach<br />
</form>
控制器:
[HttpPost]
public ActionResult RemoveOwner(int id, string index)
{
//yada
return PartialView();
}
单击图像时,它应调用删除所有者控制器,而不是调用“视图”控制器:
public ActionResult View(int id) {
//yada
return View();
}
答案 0 :(得分:0)
经过高低搜索,我终于找到了问题所在。页面上还有另一个没有结束标记的表单。这种形式应该把它带回“视图”控制器。这是部分的,所以我没有抓住它,直到......直到我绞尽脑汁待了2个小时......
答案 1 :(得分:0)
您构建操作代码的另一个建议是不要写表单操作的绝对路径。您可以使用Html.BeginForm()或在web.config中编写您的站点URL,并在应用程序从global.ascx开始时将其提取到Application [“URL”]。然后您的表单应如下所示:
<form action="<%=Application["URL"]%>League/RemoveOwner">
此方法可以避免在发布到IIS或其他Web服务器时出现一些错误。