Razor默认选择在下拉列表中?

时间:2016-09-20 20:15:24

标签: c# html asp.net asp.net-mvc razor

我在Razor中有以下声明:

ViewBag.RolesEdit,它会导致在页面加载时显示如下的下拉列表:

enter image description here

当我点击下拉箭头时,我看到:

enter image description here

基本上,用户角色是重复的。我怎样才能改变它,以便它不是创建一个新的重复元素,而是默认为它应该是的元素?基本上,由于ViewBag.CurrentUserRole是一个列表,并且function drawBasic(object,id,title) { var array = ['publisher','price','date']; var data = new google.visualization.DataTable(); for(var j = 0; j < array.length; j++){ if(array[j] == 'publisher'){ data.addColumn('string', array[j]); } else if (array[j] == 'revenue'){ data.addColumn('number', array[j]); } else if(array[j] == 'date'){ data.addColumn('date', 'X'); } } $.each(object,function (key,val) { var temp = []; var outterArray = []; var day = new Date(key); for(var y = 0; y < val.length; y++){ for(var x = 0; x < array.length; x++){ if(array[x] =='publisher'){ temp.push(val[y][array[x]]); } else if(array[x] != 'date' && array[x] !='publisher'){ temp.push(parseObjToNum(val[y][array[x]])); } } temp.push(day); outterArray.push(temp); temp = []; } data.addRows(outterArray); }); var options = { title: title, hAxis: { "format": "y-MM-d" } }; var chart = new google.visualization.ColumnChart(document.getElementById(id)); var formatter = new google.visualization.NumberFormat({fractionDigits: true}); formatter.format(data, 1, 2, 3); chart.draw(data, options); } 保证有一个元素恰好等于上述列表中的一个项目,我如何循环列表以相互比较并设置默认?

谢谢。

1 个答案:

答案 0 :(得分:1)

使用Html.DropDownList辅助方法时,要将一个选项设置为预先选择,您只需将该选项的设置为ViewBag字典,并使用相同的密钥生成SELECT元素。

@Html.DropDownList("SelectedRole", ViewBag.RolesEdit as List<SelectListItem>)

假设您的操作方法是将ViewBag.SelectedRole设置为您要选择的选项的value

ViewBag.RolesEdit= new List<SelectListItem>{     
   new SelectListItem { Value="Administrator", Text="Administrator"},
   new SelectListItem { Value="Employees", Text="Employees"},
   new SelectListItem { Value="RegularUser", Text="Regular User"},
}
ViewBag.SelectedRole  ="RegularUser";
return View();

如果您希望将Html.DropDownListFor辅助方法与强类型视图和视图模型一起使用,则可以按照以下文章进行操作

What is the best ways to bind @Html.DropDownListFor in ASP.NET MVC5?