[英]@Html.DropDownListFor not applying selected to an option
好,所以我有代碼:
@Html.LabelFor(model => model.Status,
new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.Status,
SalesHubb.Models.Lead.Statuses
.Select(i => new SelectListItem { Text = i, Value = i }))
@Html.ValidationMessageFor(model => model.Status)
</div>
可以正確輸出在頁面上預先<select>
了正確的<option>
的<select>
。
我也有代碼:
@Html.LabelFor(model => model.Type, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Model.Type
@Html.DropDownListFor(model => model.Type,
SalesHubb.Models.Task.Types
.Select(i => new SelectListItem { Text = i, Value = i }))
@Html.ValidationMessageFor(model => model.Type)
</div>
這不會將selected
屬性應用於結果HTML中正確的(或者實際上是任何) <option>
。 SalesHubb.Models.Lead.Statuses
和SalesHubb.Models.Task.Types
都是public static string[]
。
我可以看到的唯一區別是非工作頁面的模型是通過轉換方法創建的(我已經檢查過,所有數據都是正確的,並且存在於模型中),而工作頁面只是從數據庫中提取的使用db.Leads.Find(id)
。
任何幫助將是巨大的! 我真的很困惑為什么兩個基本相同的代碼段不能以相同的方式工作。
我現在找到了解決我問題的答案。 我有一個也稱為type的路由值,該路由值用列表中未包含的內容覆蓋了模型狀態值。 這意味着我無法預選該值,因為它不在列表中。 重命名路由值解決了該問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.