ASP.Net 5 MVC6 选择 taghelper 产生错误的输出
Posted
技术标签:
【中文标题】ASP.Net 5 MVC6 选择 taghelper 产生错误的输出【英文标题】:ASP.Net 5 MVC6 select taghelper produces wrong output 【发布时间】:2016-04-07 18:15:36 【问题描述】:我修改了 asp.net mvc 6 的默认登录,并想添加一个带有 taghelper select
的下拉列表,但它似乎产生了错误的输出。
我添加了 select-taghelper-element,所以它看起来像这样:
<form asp-controller="Account" asp-action="Register" method="post" class="form-horizontal" role="form">
<div class="form-group">
<label asp-for="Tenant" class="col-md-2 control-label"></label>
<div class="col-md-10">
<select asp-for="Tenant" asp-items="ViewBag.Tenants" class="form-control" />
<span asp-validation-for="Tenant" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<button type="submit" class="btn btn-default">Register</button>
</div>
</div>
</form>
添加选择标签后,提交按钮不再显示 - 下拉列表显示但不包含数据,但使用断点 Viewbag.Tenants 包含数据。 当我使用 select-tag 删除第一个 div 时,显示按钮。
知道这里有什么问题吗?
【问题讨论】:
你试过在 ViewBag 之前加上 @ 吗? @JoeAudette 谢谢,试过了,没区别.. 【参考方案1】:你的标记是错误的。不要使用自闭合select
标签。有一个明确的结束标记。
这应该可行。
<select asp-for="Tenant" asp-items="ViewBag.Tenants" class="form-control"></select>
【讨论】:
啊,你真是个天才!谢谢! :) 我已经尝试过了,但奇怪的是我得到了以 multiple="multiple" 作为选择列表而不是下拉列表呈现的列表? @MarkRedman 取决于你为asp-for
使用的属性的类型,如果是数组类型(int[]
/string[]
),会用多个属性渲染
它是 SelectList 类型,我尝试过 SelectList 和 Listasp-for
而不是asp-items
的属性。见Select Tag Helper in MVC 6以上是关于ASP.Net 5 MVC6 选择 taghelper 产生错误的输出的主要内容,如果未能解决你的问题,请参考以下文章
[十一] ASP.NET Core 中的 Taghelper