0

Html.RadioButtonForクリックするとサーバー上でコードを実行し、特定のテキスト ボックスの表示を制御するラジオ ボタンを作成するにはどうすればよいですか。以前は 感謝を<asp:control込めて作成していましたautopostback="true"

4

2 に答える 2

1

私はあなたが何を意味するのか完全にはわかりませんが、通常のラジオボタンにポストバックを実行させるには、ポストバックを実行するjavascriptを使用する必要があります(jqueryは私が使用したものです)非同期ポストバックではなく、実際のポストバックを実行します)。

ポストバックをアクション結果に向けて、ビューモデルで選択したオプションを反映し、それをビューに再度送信することを確認してください。ビューには、if、else、または選択を反映するために必要なものなどのより軽いコードが含まれます。ユーザーによって。

編集:

$(".rbClass").Click(function(){
    $("formToSubmit").submit();
});

これは通常のポストバックで機能するはずです。ajax を調べる必要があります。$.ajax() チェック jquery を使用するか、ここで検索するときにプロパティ「async:false」を設定するオプションさえあり、素晴らしい例が得られます。

于 2010-10-18T18:10:17.367 に答える
1

いつものように、ビュー モデルを作成することから始めることができます。

public class MyViewModel
{
    public int RadioValue { get; set; }
}

次にコントローラー:

[HandleError]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel
        {
            // Set to some initial value
            RadioValue = 1
        });
    }

    public ActionResult CheckVisibility(int radioValue)
    {
        return Json(new
        {
            // based on the value of the radio decide whether
            // the textbox should be shown
            visible = radioValue == 1
        }, JsonRequestBehavior.AllowGet);
    }
}

最後に、強く型付けされたビュー:

<script type="text/javascript">
    $(function () {
        // when one of the two radio buttons is clicked
        $('.myradio').click(function () {
            // prepare the request
            var data = { radioValue: $(this).val() };

            // url to send the AJAX request to
            var url = '<%= Url.Action("checkvisibility") %>';

            // send an AJAX request
            $.getJSON(url, data, function (json) {
                // when the request succeeds toggle the visibility of the textbox
                // based on the JSON response returned by the server
                $('#foo').toggle(json.visible);
            });
        });
    });
</script>

Value 1: <%: Html.RadioButtonFor(x => x.RadioValue, "1", new { @class ="myradio" })%>
Value 2: <%: Html.RadioButtonFor(x => x.RadioValue, "2", new { @class = "myradio" })%>
<br/>
<input type="text" id="foo" name="foo" value="bar" />
于 2010-10-18T19:51:01.173 に答える