【问题标题】:MVC Unknown Validation on Drop Down List下拉列表上的 MVC 未知验证
【发布时间】:2018-01-10 21:28:12
【问题描述】:

所以我有一个下拉列表,由于某种原因正在注入 input-validation-error 类。当我第一次加载页面时,一切都在 GET 请求上正常加载。直到表单被回发后才会失效。无论选择哪个选项,在帖子上 MVC 都会注入错误类,并且错误消息会说“值 '0' 无效”。它显示的值是选择的值,可以是任何有效的整数。

这是 CSHTML:

<div class="form-group">
            @Html.LabelFor(m => m.DistributionTable, "Distribution:", new { @class = "col-lg-2 control-label" })
            <div class="col-lg-10">
                @Html.DropDownListFor(m => m.DistributionTable, new SelectList(Model.DistributionTable, "Value", "Key", Model.Criteria.SelectedDistribution), new { @class = "form-control" })
                @Html.ValidationMessageFor(m => m.DistributionTable)
            </div>
        </div>

因此,您可以从那里看到下拉列表绑定到一个字段 DistributionTable,如下所示:

    [XmlIgnore]
    public Dictionary<string, int> DistributionTable { get; set; }

如您所见,这是一个没有属性验证的字典。我也没有在它到达控制器后添加任何自定义验证。

我的问题是验证错误发生的原因和位置,以便我可以删除此验证错误?

谢谢,

【问题讨论】:

  • 租赁检查this answer
  • 您不能将

标签: c# asp.net-mvc validation


【解决方案1】:

谢谢 ashik 和 Stephen Muecke。 cmets 引导我重构这段代码,最终成功。验证错误不会被注入,现在 dropdownlistfor 绑定到所选项目,而不是实际的选项字典。

        <div class="form-group">
            @*@Html.LabelFor(m => m.DistributionTable, "Distribution:", new { @class = "col-lg-2 control-label" })*@
            @Html.LabelFor(m => m.Criteria.SelectedDistribution, "Distribution:", new { @class = "col-lg-2 control-label" })
            <div class="col-lg-10">
                @*@Html.DropDownListFor(m => m.DistributionTable, new SelectList(Model.DistributionTable, "Value", "Key", Model.Criteria.SelectedDistribution), new { @class = "form-control" })*@
                @Html.DropDownListFor(m => m.Criteria.SelectedDistribution, new SelectList(Model.DistributionTable, "Value", "Key"), new { @class = "form-control" })
                @*@Html.ValidationMessageFor(m => m.DistributionTable)*@
                @Html.ValidationMessageFor(m => m.Criteria.SelectedDistribution)
            </div>
        </div>

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多