-1

私の問題は、MVCWebフォームで何かをしようとしていることです

page name = addition.aspx 
event = button1_click
int numberOne = convert.toint32(textbox1.text);
int numberTwo = convert.toint32(textbox2.text);
int myResult = numberOne + numberTwo;
label1.text = myResult.Tostring();

page name = addition.aspx (same page) 
event = button2_click
int numberthree = convert.toint32(textbox3.text);
int numberfour = convert.toint32(textbox4.text);
int myResult2 = numberOne + numberTwo;
label2.text = myResult2.Tostring();

私の質問は、MVCに対して同じことをしたいということです(イベントはどこにありますか...ページの投稿とページの取得で変換する必要があると思います...私は間違っています)

4

2 に答える 2

3

MVCのサーバー側のコントロールはありません。2つのボタンで異なるイベントをトリガーする場合は、いくつかのオプションがあります。JQueryはデフォルトでMVCプロジェクトに含まれており、非常に人気があります。それで、私はあなたにそれでいくつかの例を示します。

2つの送信ボタンを作成して、送信前にフォームアクションを切り替えます。

jqueryの使用例:

HTML

<form action="">
   <input type="submit" id="first" value="first" />
   <input type="submit" id="second" value="second" />
</form>

JS

$(function(){
    // on document ready wire up click events  

    // handle click event for first button
    $('#first').on('click', function(){
         $('form').prop('action', 'PostActionOne'); // set the action on the form to handle first button post
    });
    // handle click event for second button
    $('#second').on('click', function(){
         $('form').prop('action', 'PostActionTwo'); // set the action on the form to handle second button post
    });
});

別のオプション:

シナリオを処理するためにajaxリクエストを実行するクリックイベントで2つのボタンを使用します。

HTML

JS

$(function(){
    // on document ready wire up click events  
    $('#first').on('click', function(){
          $.ajax({
             type: 'POST',
             url: 'PostActionOne,
             data: data,
             success: success,
             dataType: dataType
         });
    });

    $('#second').on('click', function(){
          $.ajax({
             type: 'POST',
             url: 'PostActionTwo,
             data: data,
             success: success,
             dataType: dataType
         });
    });
});
于 2012-09-06T14:19:58.060 に答える
1

ASP.NET Webページは確かに(おそらく)より優れたイベント駆動型プログラミングを提供する可能性がありますが、それでもクライアント側では実行されません。したがって、WebFormsとMVCのどちらを使用する場合でも、ブラウザのWebページにあるボタンのクリックイベントで何かを実行したい場合は、javascript、jqueryでトリガーを作成し、ajaxを使用して、ページ全体をリロードする必要がないようにします。毎回。

また、MVCには、と呼ばれるヘルパーがあります

@Ajax.ActionLink("linkname", "Action", "etc");

それはあなたをかなり速く働かせることができます、ただそれについて読んでください。 http://msdn.microsoft.com/en-us/library/system.web.mvc.ajax.ajaxextensions.actionlink%28v=vs.108%29.aspx

于 2012-09-06T14:17:11.687 に答える