Моя собственная проверка JavaScript + MicrosoftMvcValidation. Является ли это возможным ? Как - PullRequest
0 голосов
/ 15 марта 2011

Я хотел бы иметь возможность использовать проверку 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 для проверки модели,

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 голосов
/ 19 марта 2011

Можно придумать пару разных способов справиться с этим, но, как вы, возможно, уже подумали, проверка пользовательского сценария не будет выполняться, если сценарий не включен на клиенте. Я предполагаю, что это не проблема?

В этом случае: Переопределите кнопку submit и выполните логику проверки перед отправкой. Поместите результат в скрытый ввод. Добавьте скрытый ввод в модель и проверьте его вместо выбора.

Затем вы можете использовать сообщение проверки для скрытого ввода для отображения ошибок или снова запустить логику после обратной передачи (если вы хотите, чтобы ваш сценарий отображал сообщения проверки).

...