1

私はドロップダウンリストを持つアプリケーションを開発しています。ドロップダウンリストの選択に変更があるたびに、同じ部分ビューをそれに応じて選択する必要があります。

ドロップダウンリストを次のように使用しています

 @Html.DropDownListFor(x => x.ID,
              new SelectList(new List<Object>{ new { value = 0 , text = "MCQ"  },new { value = 1 , text = "Rating Scale" },
                           new { value = 2 , text = "Comment Box"}}, "Value", "Text"),
            "Select Answer Type",
            new
            {
                id = "myddl",
                data_url = Url.Action("GetHtml", "Question")
            })

および選択変更イベントを追跡するjQueryコード

 $(function () {
        $('#myddl').change(function () {
            var url = $(this).data('url');
            var value = $(this).val();
            $('#result').load(url)
        });
    });

そして、GetHTMLという名前のアクションを次のように使用しています

public ActionResult GetHtml(string value)
        {

            if (value== "0")
           {
             return PartialView("_OAns");
           }
            else if (value== "1")
           {
               return PartialView("_RScale");
           }
            else if (value== "2")
           {
               return PartialView("_Comments");
           }
           else
           {                   
               return View("Index");
           }
        }

上記のコードは正常に動作していますが、ドロップダウン ボックスで値を選択すると、常にこれが返されます。View("Index")つまり、値 1、2、または 3 に一致する値を取得しない可能性があります。

どういう理由ですか ?選択の変更を適用したいのですが、ここでは起こりません。アクションまたは値の受け渡しに問題はありますか?

助けてください

4

1 に答える 1

3

コールバック内でこのvalue変数を宣言しましchangeたが、何もしていないようです。たとえば、サーバーに送信するなど、何かを行います。

$(function () {
    $('#myddl').change(function () {
        var url = $(this).data('url');
        var value = $(this).val();
        $('#result').load(url, { value: value });
    });
});

関数の 2 番目の引数に注意してください.load()。AJAX リクエスト中にサーバーにデータを渡すことができます。

于 2012-07-01T17:51:11.043 に答える