2013-07-09 26 views
0

示例代碼從@ Html.DropDownList的值值@ Html.Hidden:分配在MVC3

@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個下拉列表,用戶可以選擇分別對應於Smth_ID和Smth1_ID的2個值(Smth_Description和Smth1_Description)。

問題是我想根據用戶選擇的內容從下拉列表中檢索值本身。我打算使用隱藏字段,但我不確定如何將選定的值從下拉列表綁定到單個隱藏字段。

有人可以幫我嗎?

+0

如果使用@ Html.DropDownLis tFor(p => p.Value),那麼這應該爲值產生一個隱藏的字段名稱。 –

+0

嗨lrb,是否有可能爲單個@ Html.DropDownListFor語句返回2個隱藏的字段? – b0ssY

回答

0

爲了解決這個問題,你可以

  1. 兩個下拉列表使用的@Html.DropDownListFor代替@Html.DropDownList。爲此,您需要將viewbags更改爲模型的屬性。

  2. 如果你想使用ViewBag和你的隱藏字段,在下拉菜單的上改變事件的下拉菜單中選擇的值分配給相應的隱藏字段。

如:

$('#list').change(function(){  
    $('#Smth_Description').val($('#list:selected').val()); 
}); 
0

雅我建議Ajax來做到這一點。找到

control named =Smth1_ID 

和查找還使用它ID = Smth1_Description

然後,第一元件的值分配給所述上

document ready of ajax call. 

或 的Javascript上bodyLoad隱藏 hiddentTextField ()

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