在.netmvc4中,如何从不引人注目的验证中排除下拉列表

本文关键字:引人注目 验证 排除 下拉列表 netmvc4 | 更新日期: 2023-09-27 18:26:59

我有可选的下拉列表,如果没有进行选择,它会触发验证错误,如何使其可选,但如果进行了选择,仍将其绑定。

得到了这个答案链接,但它实际上停止了绑定,这不是我想要的,而且我知道如何完全摆脱不引人注目的验证,以经典的方式完成它,然后从http post中获得我想要的东西,但我想知道mvc4客户端验证是否对此灵活。基本上,我是在验证服务器端并抛出异常,然后将它们添加到ModelState中,所以需要mvc内置客户端验证的部分支持,除了下拉菜单外,它运行良好。

我的模型在属性上没有"必需"属性,这是我的表单:

    @using (Html.BeginForm("Send", "Mail", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary()
        <fieldset>
            <legend>New Support Ticket: </legend>
            <ul>
                <li>
                    <label for="@Model.TypeLookupId">Type</label>
                    @Html.DropDownListFor(m => m.TypeLookupId, Model.Types)
                </li>
                <li>
                    <label for="@Model.IssueName">Subject</label>
                    @Html.TextBoxFor(m => m.IssueName, Model.IssueName)
                </li>  
                <li>
                    <label for="@Model.IssueNewNote">Comment</label>
                    @Html.TextAreaFor(m => m.IssueNewNote, string.Empty)
                </li>
                <li>
                    <input type="file" name="files" id="files" multiple="multiple"/>
                </li>

                <li>
                    <input type="submit" value="Save" />
                </li>

            </ul>
        </fieldset>
    }

在.netmvc4中,如何从不引人注目的验证中排除下拉列表

默认情况下,

int不可为null。验证将根据需要进行处理。将您的属性更改为int?Nullable<int>以使其不需要。