所以我可以做到这一点
string selectedOption = ViewBag.SelectedOption; <select id="SelectedYear" name="SelectedYear"> <option value="2010">2010</option>//if(selectedOption == 2010)...meh... <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> </select>
我知道我可以在一个div中存储SelectedOption,并在$(document).ready之后以简洁的方式用jQuery设置所选的选项.
是否有一种简洁的方法来直接完成MVC3 / razor的任务?
解决方法
就像是:
int selectedOption = ViewBag.SelectedOption; <select id="SelectedYear" name="SelectedYear"> <option value="2010" selected="@(selectedOption == 2010 ? "selected" : "")">2010</option> <option value="2011" selected="@(selectedOption == 2011 ? "selected" : "")">2011</option> <option value="2012" selected="@(selectedOption == 2012 ? "selected" : "")">2012</option> <option value="2013" selected="@(selectedOption == 2013 ? "selected" : "")">2013</option> </select>
话虽如此,这是HtmlHelper.DropDownList的用途.
将您的逻辑放在控制器中,然后通过ViewBag传递IEnumerable.此时,您只需在视图中调用帮助程序:
@Html.DropDownList("optionName",ViewBag.MyOptionsList as IEnumerable<SelectListItem>)