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

ただし、onmousedown/onmouseclick ではなく、作成された各ボタンのページ読み込み時に「saveTest」プロシージャを呼び出します。

これを変更することは可能ですか?

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 に答える