【问题标题】:ASP.Net 5 MVC6 select taghelper produces wrong outputASP.Net 5 MVC6 选择 taghelper 产生错误的输出
【发布时间】: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 谢谢,试过了,没区别..

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


【解决方案1】:

你的标记是错误的。不要使用自闭合select 标签。有一个明确的结束标记。

这应该可行。

<select asp-for="Tenant" asp-items="ViewBag.Tenants" class="form-control"></select>

【讨论】:

  • 啊,你真是个天才!谢谢! :)
  • 我已经尝试过了,但奇怪的是我得到了以 multiple="multiple" 作为选择列表而不是下拉列表呈现的列表?
  • @MarkRedman 取决于你为asp-for使用的属性的类型,如果是数组类型(int[]/string[]),会用多个属性渲染
  • 它是 SelectList 类型,我尝试过 SelectList 和 List (不是 IEnumerable 或数组)
  • 我说的是用于asp-for 而不是asp-items 的属性。见Select Tag Helper in MVC 6
猜你喜欢
  • 2016-05-12
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
相关资源
最近更新 更多