如何设置Html.DropDownListFor的选定值?我一直在网上看看,并且已经看到它可以通过使用第四个参数来实现,如下所示:
@Html.DropDownListFor(m => m, new SelectList(Model, "Code", "Name", 0), "Please select a country")
Run Code Online (Sandbox Code Playgroud)
我的选择列表然后显示如下:
<select id="ShipFromCountries" name="ShipFromCountries">
<option value="">Please select a country</option>
<option value="GB">United Kingdom</option>
<option value="US">United States</option>
...
</select>
Run Code Online (Sandbox Code Playgroud)
但由于某种原因英国仍然被选中,但我想要"请选择一个国家"进行选择.
谁知道我怎么能做到这一点?
我已经更新了我的代码,因为功能略有变化,但似乎仍然遇到这个问题.这就是我的看法:
@Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, "OrderTemplateId", "OrderTemplateName", 1), "Please select an order template")
Run Code Online (Sandbox Code Playgroud)
1是option我想要选择的Id ,我也试过了文本,option但也没有用.
有任何想法吗?
我正在编辑页面中使用DropDownListFor帮助方法,我没有运气来选择我指定的值.我在Stackoverflow上发现了一个类似的问题.建议的解决方法是"在视图代码中填充SelectList".问题是我已经尝试过这个但它仍然没有用.
<%= Html.DropDownListFor(model => model.States, new SelectList(Model.States.OrderBy(s => s.StateAbbr), "StateAbbr", "StateName", Model.AddressStateAbbr), "-- Select State --")%>Run Code Online (Sandbox Code Playgroud)
我设置了断点并验证了model.AddressStateAbbr的存在性(和有效性).我只是不确定我错过了什么.
我正在使用C#和.NET Framework 4.6.1开发ASP.NET MVC 5应用程序.
我有这个View:
@model MyProject.Web.API.Models.AggregationLevelConfViewModel
[...]
@Html.DropDownListFor(m => m.Configurations[0].HelperCodeType, (SelectList)Model.HelperCodeTypeItems, new { id = "Configurations[0].HelperCodeType" })
Run Code Online (Sandbox Code Playgroud)
该ViewModel方法是:
public class AggregationLevelConfViewModel
{
private readonly List<GenericIdNameType> codeTypes;
private readonly List<GenericIdNameType> helperCodeTypes;
public IEnumerable<SelectListItem> CodeTypeItems
{
get { return new SelectList(codeTypes, "Id", "Name"); }
}
public IEnumerable<SelectListItem> HelperCodeTypeItems
{
get { return new SelectList(helperCodeTypes, "Id", "Name"); }
}
public int ProductionOrderId { get; set; }
public string ProductionOrderName { get; set; }
public IList<Models.AggregationLevelConfiguration> Configurations { …Run Code Online (Sandbox Code Playgroud)