【问题标题】:MVC 6 - TagHelper SelectMVC 6 - TagHelper 选择
【发布时间】:2016-01-31 04:07:15
【问题描述】:

这可能是一个愚蠢的问题,但我不知道为什么这是 Select TagHelper 的默认行为。

这就是我的看法

<select asp-for="Estimators" asp-items="Model.Estimators" class="form-control"></select>

这是页面上的输出

<select class="form-control" id="Estimators" multiple="multiple" name="Estimators"><option value="2">Enio LastName</option>
<option value="6">Ianko Diaz</option>
<option value="7">Iordan Diaz</option>
<option value="8">Joan Alonso</option>
<option value="5">Lazaro Araya</option>
<option value="3">Leydis Martinez</option>
<option value="4">Ruben Cruz</option>
<option value="1">Shamir Ajate</option>
<option value="9">Yudiel Curbelo</option>
</select>

为什么选择标签呈现为multiple="multiple"。

【问题讨论】:

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


    【解决方案1】:

    您实际上是错误地使用了帮助程序。您应该有另一个属性来存储所选项目。

    public class YourViewModel
    {
       public int SelectedEstimator { set; get; }
       public List<SelectListItem> Estimators { set; get; }
    }
    

    在你看来

    @model YourViewModel
    <select asp-for="SelectedEstimator" asp-items="@Model.Estimators">
        <option>Please select one</option>
    </select>
    

    这将呈现单个可选择的 SELECT 元素。

    当您用于asp-for items 的属性是数组类型时,生成的选择元素将是多选。

    public class YourViewModel
    {
       public int[] SelectedEstimator { set; get; }
       public List<SelectListItem> Estimators { set; get; }
    }
    

    【讨论】:

    • 这是我的财产。公共 IEnumerable Estimators { get;放; }
    • @YudielCurbelo 您以错误的方式使用帮助程序。请参阅我的答案,其中解释了如何使用它。另请参阅this 答案以获取更详细的示例。
    • @YudielCurbelo 您可能忘记将来自@Shyju 的回复标记为Answer。为了其他用户的利益,您可能希望这样做。
    猜你喜欢
    • 2016-09-17
    • 2016-08-23
    • 2016-07-28
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 2018-11-24
    相关资源
    最近更新 更多