0

我希望能够使用 MVC 验证 + 我的自定义 javascript 验证。
MVC 验证非常适合模型验证。这里的主要问题是我有更复杂的验证。

例如:使用 MVC 验证的案例

<div class="editorSmall">
    <div class="editor-label bold">
        <%: Html.LabelFor(model => model.Location.CurID)%>:
    </div>
        <div class="editor-field">
        <%:Html.DropDownListFor(model => model.Location.CurID, Model.CurrenciesList)%>
        <%: Html.ValidationMessageFor(model => model.Location.CurID)%>
    </div>
</div>

<div class="editorSmall">
    <div class="editor-label bold">
        <%: Html.LabelFor(model => model.Location.UnitID)%>:
    </div>
        <div class="editor-field">
        <%:Html.DropDownListFor(model => model.Location.UnitID,Model.UnitList)%>
        <%: Html.ValidationMessageFor(model => model.Location.UnitID)%>
    </div>
</div>

如您所见,我使用 ValidationMessageFor 进行模型验证。

例如:自定义验证。
在这里,我想对列表框进行验证。我希望它是必需的。因为这不是强类型,所以我需要另一种方法来进行验证。

 <div class="editorSmall" >
        <div class="editor-label bold">
            <label><%:Model.GrpName1%>:</label>
        </div>
        <div class="editor-field">
             <%: Html.ListBox("Model_Groupe1", new MultiSelectList(Model.Groupe1, "GrpDescID", "GrpDescTxt", Model.Groupe1Selected.Select(g => g.GrpDescID)), new { @class = "grplb" })%>
        </div>
    </div>


我想要什么:如果我点击提交按钮,我想要内置的 MVC 验证 + 我的自定义验证同时......我的意思是,如果第一个验证(MVC 一个)无效,我想要我的自定义验证也执行他的验证。

谢谢

4

1 回答 1

0

可以想出几种不同的方法来处理这个问题,但是,正如您可能已经想到的那样,如果客户端上未启用脚本,您的自定义脚本验证将不会运行。我猜这不是问题吗?

在这种情况下:覆盖提交按钮并在提交之前执行验证逻辑。将结果放入隐藏输入中。将隐藏的输入添加到模型并验证它而不是选择。

然后,您可以将验证消息用于隐藏输入以显示错误或在回发后再次运行逻辑(如果您希望脚本显示验证消息)。

于 2011-03-19T00:31:26.563 回答