簡體   English   中英

@ Html.DropDownList對於未將所選內容應用於選項

[英]@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.StatusesSalesHubb.Models.Task.Types都是public static string[]

我可以看到的唯一區別是非工作頁面的模型是通過轉換方法創建的(我已經檢查過,所有數據都是正確的,並且存在於模型中),而工作頁面只是從數據庫中提取的使用db.Leads.Find(id)

任何幫助將是巨大的! 我真的很困惑為什么兩個基本相同的代碼段不能以相同的方式工作。

我現在找到了解決我問題的答案。 我有一個也稱為type的路由值,該路由值用列表中未包含的內容覆蓋了模型狀態值。 這意味着我無法預選該值,因為它不在列表中。 重命名路由值解決了該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM