我有一个问题与MVC(新来的,来自MVVM在WPF中)。MVC模型失去约束
我在我的cshtml文件中有一个组合框,让用户从列表中选择一个国家。但是,在我的模型中,当我尝试从列表中获取国家时,集合为空。
<div class="inputs">
@Html.LabelFor(model => model.SelectedCountry)
<div class="input-box">
@Html.DropDownListFor(model => model.CountryID, Model.AvailableCountries)
</div>
@Html.ValidationMessageFor(model => model.SelectedCountry)
</div>
正如你所看到的,我将选定的值绑定到CountryID。在我的模型中,我使用此CountryID从国家/地区列表中获取名称,并将SelectedCountry字符串设置为用户选择的任何内容。
问题是,当我尝试从我的模型列表中获取国家列表为空。
在我的模型的国家名单:
public IList<SelectListItem> AvailableCountries
{
get
{
if (_availableCountries == null)
_availableCountries = new List<SelectListItem>();
return _availableCountries;
}
set
{
_availableCountries = value;
}
}
和国家的在我的控制器列表中的人口。
foreach (var c in _countryService.GetAllCountries())
{
model.AvailableCountries.Add(new SelectListItem() { Text = c.Name, Value = c.Id.ToString() });
}
也为您在CSHTML看到,值绑定到CountryIID和该属性的代码是:
public int CountryID
{
get
{
return _countryID;
}
set
{
if (_countryID != value)
{
_countryID = value;
List<SelectListItem> _list = new List<SelectListItem>(AvailableCountries);
SelectedCountry = _list.Find(x => x.Value == _countryID.ToString()).Text;
}
}
}
/彼得
这只是视图,底层逻辑在哪里? – walther
我看不到列表? – MUG4N