示例代码:
@Html.DropDownList("Smth_ID", (IEnumerable<SelectListItem>)ViewBag.Smth, "--Select Layer--", new { id = "list" })
@Html.Hidden("Smth_Description", <value from list above>);
@Html.DropDownList("Smth1_ID", (IEnumerable<SelectListItem>)ViewBag.Smth1, "--Select Layer--", new { id = "list1" })
@Html.Hidden("Smth1_Description", <value from the list1 above>);
我使用ViewBag将数据传递给控制器的视图。它有2个下拉列表,用户可以选择2个值(Smth_Description和Smth1_Description),分别对应Smth_ID和Smth1_ID。
问题是我想根据用户选择的内容从下拉列表中检索值本身。我打算使用隐藏字段,但我不确定如何将下拉列表中的选定值绑定到各个隐藏字段。
有人可以帮助我吗?
答案 0 :(得分:0)
要解决此问题,您可以
对两个下拉列表使用@Html.DropDownListFor
代替@Html.DropDownList
。为此,您需要将viewbags更改为模型的属性。
如果您想使用ViewBag
和隐藏字段,请在下拉列表的更改事件中将选定的下拉列表值分配给相应的隐藏字段。
例如:
$('#list').change(function(){
$('#Smth_Description').val($('#list:selected').val());
});
答案 1 :(得分:0)
我建议Ajax这样做。找到
control named =Smth1_ID
并找到了 hiddentTextField使用它ID = Smth1_Description
然后将第一个元素的值分配给隐藏在
上document ready of ajax call.
或 bodyLoad()上的Javascript
------------------------------------------------------------------
<script type='javascript'>
$( document ).ready(function() {
var data = $("Smth1_ID").val();
$("#Smth1_Description").prop("text",data.toString()) ;
});
$('#Smth1_ID').change(function(){
$('#Smth_Description').val(this.val());
});
</script>