0

我有一个创建一些按钮的循环,并且(旨在)在按下该按钮时进行函数调用。

    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>
           }

但是,它在页面加载时为生成的每个按钮调用“saveTest”过程,而不是 onmousedown/onmouseclick。

有可能改变这个吗?

4

2 回答 2

3

我由此假设 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>

    }

}
于 2012-12-03T10:49:51.023 回答
0

该按钮将提交给在表单中指定的控制器和操作。因此,请仔细检查您指定的控制器和操作。

  using (Html.BeginForm("saveTest", "Controller"))
    {
    }

这是您必须指定表单的方式。

问候, Pavan.G

于 2012-12-03T11:26:31.257 回答