日期:2014-05-18  浏览次数:20371 次

.NET MVC3 from mvc3 select
layout 

<form>
<select id="StName" ....></select>
<input type="submit" value="submit">
</form>




为了保持默认的 下拉列表值 在 .cshtml中 
写了一个

action (string stName)
{

ViewBag.StName = stName;
.....
}




cshtml


 <script type="text/javascript">

  var stName_value = '@ViewBag.StName';  

  $('#StName option:selected').text(storeName_value);

 </script>



第一次提交 可以把下拉框的数值传过来 然后再点一次提交 就传不过来了 

当然 第二次 如果手工 调整一下数值 还是可以的  


 估计问题的原因是 JS 只是改变了显示的数值 并没有将该数值 selected的属性 只是猜测


请各位英雄帮忙







------解决方案--------------------
JScript code

   $("#StName").val('@ViewBag.StName');

------解决方案--------------------
首先你要赋值正确,然后在使用下面的方式读取:
var tt=$("form select[name=selectName]").find('option:selected').text();
alert(tt);
把selectName换成你表单中的下拉框name值就行了 
要是使用ID查询这样就行了
var tt=$("#selectId").find('option:selected').text();就行