我正在编写.netcore Webapp,并且正在使用全球化来填充控制器类中的国家/地区列表:
public IActionResult GetCountry()
{
List<string> CountryList = new List<string>();
CultureInfo[] cInfoList = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
foreach (CultureInfo cInfo in cInfoList)
{
RegionInfo r = new RegionInfo(cInfo.LCID);
if(!(CountryList.Contains(r.EnglishName)))
{
CountryList.Add(r.EnglishName);
}
}
//sort list into order
CountryList.Sort();
ViewBag.CountryList = CountryList;
return View(CountryList);
}
我的模型课中有以下内容:
[Display(Name ="Country of Origin")]
public string GetCountry { get; set; }
最后在我的cshtml中,我有以下内容:
<div class="form-group">
<label asp-for="GetCountry"></label>
<select asp-for="GetCountry" asp-items="new SelectList(ViewBag.CountryList)"></select>
</div>
我不确定哪里出了问题,但是在运行时会给我以下消息。
ArgumentNullException:值不能为null。 参数名称:项目 Microsoft.AspNetCore.Mvc.Rendering.MultiSelectList..ctor(IEnumerable项目,字符串dataValueField,字符串dataTextField,IEnumerable selectedValues,字符串dataGroupField)
我可能做过一些愚蠢的事情,但任何帮助将不胜感激。
答案 0 :(得分:0)
您错过了@
中的asp-items
<div class="form-group">
<label asp-for="GetCountry"></label>
<select asp-for="GetCountry" asp-items="@(new SelectList(ViewBag.CountryList))"></select>
</div>
答案 1 :(得分:0)