2011-08-02 18 views
2

私はMVCにかなり慣れています。私には簡単な問題があります。私はmvc asp.netページに3つのラジオボタンがあります。ページ上のラジオボタンの1つをチェックすると、コントローラでアクションを呼びたいと思います。 mvcでポストバックを実行するにはどうすればよいですか?ページのMVC - ラジオボタンをクリックしたときのポストバック

<input type="radio" name="sex" value="male" /> Male<br /> 
<input type="radio" name="sex" value="female" /> Female 

あなたはスクリプトを追加することができます(あなたはjQueryのを使用することができると仮定した場合)のような:

答えて

6

あなたのようなラジオボタンを持っていた場合に

あなたがアクションメソッドを持っていると仮定すると
<script type="text/javascript"> 
    $(function() { 
     $(':radio[name="sex"]').change(function() { 
      $.ajax({ 
       url: 'sex', 
       type: 'POST', 
       data: { sex: $(':radio[name="sex"]:checked').val() }, 
       success: function (xhr_data) { 
        alert(xhr_data.someValue); 
       } 
      }); 
     }); 
    }); 
</script> 

あなたのビューを生成したコントローラと同じコントローラ:

public class YourController : Controller 
{ 
    public ActionResult sex(string sex) 
    { 
     // do something awesome 
     return Json(new { someValue = "testing!" }); 
    } 
} 
+0

これは絶対に私が探していたものです。ありがとう、トン。 – HariS

+0

.change(function ...検出はあまりブラウザーに優しいものではありません...代わりに.click(function ... –

2

私は、私が追加したとき、すなわち

data: { sex: $('radio[name="sex"]:checked').val() }, 

をしたときのみ、上記の答えは私の仕事:セレクタに「確認」。

+1

を使用します)合意し、私はその変更を(加えて必要な ':'接頭辞を)受け入れた回答に組み込みました。 – AakashM

+0

@AakashM答えの中のいくつかの帰属/認識はうれしいでしょう。 –

関連する問題