我自己的javascript验证+ MicrosoftMvcValidation。可能吗 ?怎么样

时间:2011-03-15 15:40:13

标签: asp.net-mvc-2 data-annotations customvalidator

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

Ex: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进行模型验证。

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

 <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)无效,我希望我的自定义验证执行他的验证太

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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