我有一个循环,可以创建一些按钮,并且(意味着)在按下该按钮时进行函数调用。
foreach (Answer a in qanswers)
{
//Guid answerid = new Guid();
<form method="post" action="">
<div class="float-left">
<input type="submit" value="@a.Answer1" class="submit" style="width:600px" onmousedown="@{saveTest(a, module, user, quest, healthsafety);}">
<br /><br />
</div>
</form>
}
但是,它会调用&#34; saveTest&#34;生成的每个按钮的页面加载过程,而不是onmousedown / onmouseclick。
可以改变这个吗?
答案 0 :(得分:2)
我假设saveTest是你试图调用的服务器端函数。
onmousedown是一个客户端事件,只能直接运行客户端脚本。
如果您希望调用服务器端功能,则需要在页面将发布打包的表单中指定一个操作。
点击此处了解更多信息
http://msdn.microsoft.com/en-us/library/system.web.mvc.html.formextensions.beginform(v=vs.108).aspx
您的代码的快速修改版本将是:
foreach (Answer a in qanswers)
{
using (Html.BeginForm("saveTest", "ControllerName"))
{
<div class="float-left">
<input type="submit" value="@a.Answer1" class="submit" style="width:600px")>
<br /><br />
</div>
}
}
答案 1 :(得分:0)
该按钮将提交给控制器和表单中指定的操作。因此,请仔细检查您指定的控制器和操作。
using (Html.BeginForm("saveTest", "Controller"))
{
}
这是您必须指定表单的方式。
此致 Pavan.G