这是我想要做的。我正在尝试将下拉选定值传递给我的控制器。
我有一个这样的下拉菜单:
@Html.DropDownList("divs", null, "--Select--", new {id="divs", onchange="SelectedIndexChanged(this.value);" })
@section Scripts
{
<script>
function SelectedIndexChanged(divs) {
document.getElementById('divs').href =
'/Controllers/MyFunction?divs=' + divs;
}
</script>
}
在我的控制器中,我试图得到值div:
public MyFunction (string divs)
{
string type = Request.QueryString["divs"];
MessageBox.Show(type); //this is empty
}
答案 0 :(得分:0)
从我的头编译器输入这个,所以它可能不太正确,但应该让你更近。
@Html.DropDownList("divs", null, "--Select--", new { id="divs"})
@section Scripts
{
<script>
$(function() {
$("#divs").change(function() {
val selected = $(this).find(":selected").val();
$.ajax({
type: 'POST',
url: '@Url.Action("MyFunction", "Controller", new { divs = selected })',
dataType: 'json',
});
});
});
</script>
}
在您的控制器中:
public ActionResult MyFunction (string divs)
{
...
}
答案 1 :(得分:0)
我相信这就是你要做的。这不是一个完整的解决方案,你必须解决它。
注意:我在javascript部分使用jQuery。
动作:
public JsonResult MyFunction (string divs)
{
return Json(divs, JsonRequestBehavior.AllowGet);
}
查看:
$(function() {
$("#divs").changed(function() {
$.ajax({
url: '/controllers/myfunction'
, cache: false
, type: 'GET'
, dataType: 'json'
, data: { divs = $(this).val() }
}).done(function (data) {
alert(data);
});
});
});
您可以从下拉声明中删除该javascript绑定。