Я довольно новичок в MVC, но добивался устойчивого прогресса, однако недавно я столкнулся с проблемой, которую, похоже, не могу преодолеть, несмотря на чтение ряда похожих постов на похожие темы.
У меня естьследующая модель (упрощенная для краткости)
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Address Address { get; set; }
У меня строго типизированное представление:
@model JFS.Data.Model.Supplier
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Supplier Address</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Address.AddressLine1)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address.AddressLine1)
@Html.ValidationMessageFor(model => model.Address.AddressLine1)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Address.Country)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address.Country)
@Html.ValidationMessageFor(model => model.Address.Country)
</div>
</fieldset>
И у меня есть общий EditorTemplate для поля Страна, как показано ниже:
@model JFS.Data.Model.Address
@using System.Globalization
@Html.DropDownListFor(o => o.Country, GetCountries(Model), "Please select")
@functions
{
private static IEnumerable<SelectListItem> GetCountries(object country)
{
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(cultureInfo => new RegionInfo(cultureInfo.LCID))
.OrderBy(r => r.EnglishName)
.Distinct()
.ToList();
return new SelectList(regions, "TwoLetterISORegionName", "EnglishName", country);
}
}
Я понимаю проблему, но не знаю, как лучше ее преодолеть, любой совет будет очень признателен.