通過我看到很多這個問題的變化的網站搜索,但沒有涉及到這種特殊情況下的多個領域。使用數組來填充MVC/C#
我想在index i
從我的模型內持有的字符串數組來填充值多DropDownLists。
我的模板是相似的(簡化的)爲以下:
@model foo
@for (int i = 0; i < Model.ArrayName.Length; i++)
{
@Html.LabelFor(m => m.ArrayName[i], "Index " + i, new {})
@Html.DropDownListFor(m => m.ArrayName[i], Model.ListOfPotentialValues, new {})
@Html.ValidationMessageFor(m => m.ArrayName[i])
}
更清楚,ArrayName
是一個字符串數組(string[]
),ListOfPotentialValues
的類型是IEnumerable<SelectListItem>
用於該代碼的型號可能如下所示:
public IEnumerable<SelectListItem> ListOfPotentialValues
{
return SelectList(/* A list of Strings*/)
}
public string[] ArrayName { get; set; }
//Constructor
public foo()
{
ArrayName = new string[] {"Foo", "Foo", "Baz","Qux"};
}
該視圖發送以下HTML輸出ST下拉菜單(這是一貫的爲他們所有)
<div>
<label for="ArrayName_0_">Index 0</label>
<select id="ArrayName_0_" name="ArrayName[0]">
<option>Foo</option>
<option>Bar</option>
<option>Baz</option>
<option>Qux</option>
</select>
<span class="field-validation-valid" data-valmsg-for="ArrayName[0]" data-valmsg-replace="true"></span>
</div>
這個,你可能會或可能不會推導出ArrayName
,當然,我想顯示的列保持值的名稱和ListOfPotentialValues
是可以選擇的值的SelectList
。值的列表正在顯示,但沒有設置它的值,因爲如果我不使用數組。
儘管未填充下拉列表的值,但如果我在我的MVC模板中調用@Model.ArrayName[i]
,則可以顯示它的值。
更多細節: 如果ListOfPotentialValues
包含的值Foo, Bar, Baz, Qux
而ArrayName
包含的值Foo, Foo, Qux, Baz
我希望的下拉菜單開始與價值觀富,富,Qux,巴茲(分別),同時還具有選擇權選擇Foo,Bar,Baz和Qux
有沒有簡單的東西我錯過了?
「ArrayName」的類型是什麼? 'ListOfPotentialValues'?你能提供一個正在輸出的HTML樣本嗎? – StriplingWarrior
我相信這個編輯滿足你所要求的 – cosban