选择Tag Helper从viewmodel获取数据时呈现空列表

时间:2017-04-04 02:36:22

标签: asp.net-core asp.net-core-mvc

我正在尝试让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的解决方案,但仍然得到了相同的结果。

1 个答案:

答案 0 :(得分:1)

标签助手根本没有触发。

ViewImports.cshtml文件中,您是否包含相应的代码帮助程序? E.g:

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers