2016-06-28 76 views
-3

我想開發一個應用程序使用ASP.Net MVC 5 &實體框架6. 我很困惑與Html助手。如何使用純html選擇選項,而不是@ Html.SelectListFor()

我有一個Driver,Vehicle實體。當我輸入一個新的驅動程序時,有一個選擇框可以選擇一個車輛並將其分配給新的驅動程序。

當頁面加載時,所有車輛RegNo屬性應該加載到@ Html.DropDownListFor()。在提交頁面時,所選車輛的ID應插入Driver實體中的VehicleID列。 這是Driver視圖的UI。

enter image description here

這是我的實體

enter image description here

用戶@Html.DropDownListFor()選擇車輛的REGNO和vehicleshoud的ID提交表單時提交的實體。

如何在運行時做到這一點?

在此先感謝。

+0

''我已經使用JQuery將選項加載到select元素。「' - 我以爲你在問如何將選項加載到'select'?你能澄清你卡在哪裏嗎? – David

+0

爲什麼你不想使用'@ Html.DropDownListFor()'方法?你失去了模型綁定和驗證的所有好處,如果你不 –

+0

號我已經加載選項使用JQuery的選擇。沒有問題。但是在提交表單時,模型的元素應該與html元素綁定。例如這是一個Html助手中的文本框。 '@ H​​tml.EditorFor(model => model.Name,new {htmlAttributes = new {@class =「form-control」,@id =「txtFullName」}}) '這個輸入元素已經綁定了Name元素這個實體/模型。我想知道如何在純html中創建html選擇。不使用@Html助手。 – Chamith

回答

1

你總是可以遍歷手動您的收藏:

<select name="Something"> 
    @foreach(var thing in Model.Something) 
    { 
     var selectedStr = someExpression ? "selected" : ""; 

     <option @selectedStr value="@thing.SomeValue">@thing.SomeText</option> 
    } 
</select> 

它甚至可能是值得的檢查由HTML輔助方法生成的HTML,所以你可以更準確地複製它。它不會離得太遠,輔助方法傾向於生成相當簡單直接的標記。

只要生成的表單元素具有相同的名稱/值,在發佈表單時,這與HTML幫助器之間沒有區別。

相關問題