[英]asp.net mvc dropdownlistfor not show selectedItem
模型:
public partial class BookModel : BaseNopEntityModel,
ILocalizedModel<BookLocalizedModel>
{
public int TranslatorId { get; set; }
public IList<SelectListItem> AvailableTranslators { get; set; }
}
控制器:
public ActionResult Edit(int id)
{
var bookTranslators = _customerService.GetAllTranslators();
foreach (var item in bookTranslators)
{
model.AvailableTranslators.Add(new SelectListItem()
{
Text = item.Nickname,
Value = item.Id.ToString(),
Selected = item.Nickname == model.Translator
});
}
return View(model);
}
Model.AvailableTranslators确实有一项具有selected = true的项目,但未能在View中将其显示为默认值。 我究竟做错了什么 ?
如何显示selectedItem作为默认值?
视图:
@model BookModel
@Html.DropDownListFor(model => model.TranslatorId, Model.AvailableTranslators)
更新:我将数据类型TranslatorId更改为字符串
public string TranslatorId { get; set; }
现在dropdownlist显示正确的默认值,只是不知道为什么?
您需要将AvailableTranslators集合包装到SelectList
尝试这个:
@Html.DropDownListFor(s => s.TranslatorId,
new SelectList(ViewBag.AvailableTranslatators,
"Value","Text",@Model.TranslatorId
),
new {})
因此,基本上,一个SelectList接受以下内容:
new SelectList(SelectListItemCollection, ValueFieldName, DataFieldName,
SelectedValue);
并且您可能想看看我提供的SelectedValue字段。 看看那应该是什么,但是您的想法正确吗?
至于为什么它绑定到简单的SelectListItem List时不起作用,请阅读此问题的所有答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.