我正在开发一个应用程序,其中我有一个下拉列表,我希望每当下拉列表的选择有任何变化时,必须相应地选择相同的部分视图。
我正在使用dropdownlist
@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
是什么原因?我想应用选择更改,但它不会发生在这里。行动或传递价值有什么问题吗?
请帮忙
答案 0 :(得分:3)
您已在value
回调中声明了此change
变量,但您似乎没有对其进行任何操作。所以做一些事情,例如将其发送到服务器:
$(function () {
$('#myddl').change(function () {
var url = $(this).data('url');
var value = $(this).val();
$('#result').load(url, { value: value });
});
});
注意.load()
函数的第二个参数。它允许您在AJAX请求期间将数据传递到服务器。