0

示例代码:

@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。

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

有人可以帮我吗?

4

2 回答 2

0

要解决这个问题,您可以

  1. 对两个下拉列表都使用 a@Html.DropDownListFor而不是。@Html.DropDownList为此,您需要将视图袋更改为模型的属性。

  2. 如果要使用ViewBag隐藏字段,请在下拉菜单的更改事件中将下拉列表的选定值分配给相应的隐藏字段。

例如:

$('#list').change(function(){    
   $('#Smth_Description').val($('#list:selected').val());
});
于 2013-07-09T04:52:56.913 回答
0

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

control named =Smth1_ID

并使用它找到 hiddentTextField ID= Smth1_Description

然后将第一个元素的值赋给 hidden on

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>
于 2013-07-09T11:43:05.507 回答