SelectList dropdown = DropDown;
foreach (var item in dropdown)
{
var modelValue = property.GetValue(Model.FormModel);
if (String.Equals(item.Value, modelValue))
{
item.Selected = true;
System.Diagnostics.Debug.WriteLine(item.Selected);
}
}
foreach (var item in dropdown)
{
var modelValue = property.GetValue(Model.FormModel);
if (String.Equals(item.Value, modelValue))
{
System.Diagnostics.Debug.WriteLine(item.Selected);
}
}
在邏輯上,上面的代碼應該輸出存在或是true, true
除非魔術磁場在一個foreach循環和另一個之間的計算機改變比特。改變MVC的SelectList選定值
但是,我得到了true, false
。這如何遠程可能?使用調試器,我看到'item'被正確解析,並且item.Selected = true
在我想要的項目上正確調用。第二個循環僅用於調試目的。
這是我如何構建DropDown。我無法觸及此代碼,因爲返回的下拉菜單應始終是通用的。
var prov = (from country in Service.GetCountries()
select new
{
Id = country.Id.ToString(),
CountryName = Localizator.CountryNames[(CountryCodes)Enum.Parse(typeof(CountryCodes), country.Code)],
}).Distinct().ToList().OrderBy(l => l.CountryName).ToList();
prov.Insert(0, new { Id = String.Empty, CountryName = Localizator.Messages[MessageIndex.LabelSelectAll] });
_customerCountrySelectionList = new SelectList(prov, "Id", "CountryName");
顯示你如何定義'DropDown'。 – YD1m
完成!更新... – Saturnix