Asp.net mvc 3 从MVC3中@Html.DropDownList的值中为@Html.Hidden赋值

Asp.net mvc 3 从MVC3中@Html.DropDownList的值中为@Html.Hidden赋值,asp.net-mvc-3,Asp.net Mvc 3,示例代码: @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<SelectListI

示例代码:

@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

问题是我想根据用户选择的内容从dropdownlist中检索值本身。我打算使用隐藏字段,但我不确定如何将DropDownList中的选定值绑定到各个隐藏字段


有人能帮我吗?

要解决这个问题,你可以

两个下拉列表都使用@Html.DropDownList代替@Html.DropDownList。为此,需要将viewbags更改为模型的属性

如果要使用ViewBag和隐藏字段,请在下拉列表的“更改时”事件中将下拉列表的选定值指定给相应的隐藏字段

例如:


是的,我建议Ajax这样做。找到

control named =Smth1_ID
而且这个发现也是 使用it ID=Smth1\u说明的hiddentTextField

然后将第一个元素的值指定给隐藏的

document ready of ajax call.
或 重载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>

如果您使用@Html.DropDownListForp=>p.Value,那么这应该为Value.Hi lrb生成一个隐藏字段名,是否可以为单个@Html.DropDownListFor语句返回两个隐藏字段?
 ------------------------------------------------------------------
 <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>