我正在尝试让select标签帮助器列出我的视图模型属性中的项目,但是当我在浏览器上呈现时它总是空的:
视图模型具有:
fun().v
我的控制器有这个:
public int AssetTypeId { get; set; }
public List<SelectListItem> AssetTypes { get; set; }
当我在最后一行放置一个断点时,我看到AssetTypes属性中的3个项目。
我的观点有:
[HttpGet("details/{id}")]
public async Task<IActionResult> Details(string id)
{
var asset = await _assetRepository.GetByIdAsync(id);
var vm = _mapper.Map<Asset, AssetViewModel>(asset);
var assetTypes = await _assetTypeRepository.ListAsync();
vm.AssetTypes = assetTypes.Select(x => new SelectListItem()
{
Value = x.Id.ToString(),
Text = x.AssetTypeName
}).ToList();
return View(vm);
}
即使我在视图中对此行添加了断点,我再次看到应该出现的3个项目。但是在浏览器中查看时,select标记会呈现为:
<select id="AssetTypeId" asp-for="AssetTypeId" asp-items="@Model.AssetTypes">
<option>Please select one</option>
</select>
显然,呈现的HTML告诉我为什么我的列表是空的但我不知道如何解决这个问题。我尝试了this question的解决方案,但仍然得到了相同的结果。
答案 0 :(得分:1)
标签助手根本没有触发。
在ViewImports.cshtml
文件中,您是否包含相应的代码帮助程序? E.g:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers