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

注意函数的第二个参数.load()。它允许您在 AJAX 请求期间将数据传递给服务器。

于 2012-07-01T17:51:11.043 回答