Я пытаюсь каскадировать названия государств в соответствии с названием страны, выбранным в раскрывающемся списке Страна. Я написал JS для метода публикации для выбранной страны. Но когда я добавил раскрывающийся список состояний и отладил его. Я получаю сообщение об ошибке - Нет Viewdata типа Ienumerable ключа StateName1.
NewRequestView Модель
public class NewRequestView
{
public string SelectedCountry { get; set; }
public IEnumerable<SelectListItem> Countries { get; set; }
public IEnumerable<SelectListItem> State { get; set; }
}
Модель страны
public class Country
{
public int CountryID { get; set; }
public string CountryName { get; set; }
}
Контроллер
public IActionResult NewRequest()
{
var model = new NewRequestView { };
model.Countries = iMapper.Map<IEnumerable<Country>, IEnumerable<SelectListItem>>(GetCountries());
return View(model);
}
Просмотр
<div class="row">
<div class="col-xs-10 multiSelectCheckboxDiv" id="multiSelectCheckboxDiv">
<span class="col1 contrlLabel" style=" font-family:calibri;color:gray;font-size:15px">Clients<span style="font-weight:800;color:red;">*</span>:</span>
@Html.DropDownList("CountryName", Model.Countries ,"Select Country",new { @class = "form-control"})
<div class="input-validation-errorText col-md-6" style="display:none;">
Please select Country.
</div>
</div>
</div>
<div class="row">
<div class="col-xs-10 multiSelectCheckboxDiv" id="multiSelectCheckboxDiv">
<span class="col1 contrlLabel" style=" font-family:calibri;color:gray;font-size:15px">Clients<span style="font-weight:800;color:red;">*</span>:</span>
@Html.DropDownList("StateName1", Model.State, "Select State", new { @class = "form-control" })
<div class="input-validation-errorText col-md-6" style="display:none;">
Please select state.
</div>
</div>
</div>
Я использовал AutoMapper для сопоставления названий стран.
Mapper
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap<Client, SelectListItem>()
.ForMember(x => x.Text, opt => opt.MapFrom(o => o.CountryName))
.ForMember(x => x.Value, opt => opt.MapFrom(o => o.CountryName));
});
return config.CreateMapper();
Из выбранной страны я запускаю JS, чтобы получить все государственные имена. Но перед тем, как выбрать себя, я получаю сообщение об ошибке
InvalidOperationException: Нет элемента ViewData типа 'IEnumerable', который имеет ключ 'StateName1'.
Позвольте мне знаете, что за ошибка, которую я здесь делаю