Я не впевнений, чи працює це рішення на MVC3. Це, безумовно, працює на MVC4:
Ви можете просто відключити перевірку на стороні клієнта в поданні Razor перед тим, як відтворити поле, і знову ввімкнути перевірку на стороні клієнта після того, як поле було відтворено.
Приклад:
<div class="editor-field">
@{ Html.EnableClientValidation(false); }
@Html.TextBoxFor(m => m.BatchId, new { @class = "k-textbox" })
@{ Html.EnableClientValidation(true); }
</div>
Тут ми вимикаємо перевірку на стороні клієнта для поля BatchId.
Також я розробив для цього маленького помічника:
public static class YnnovaHtmlHelper
{
public static ClientSideValidationDisabler BeginDisableClientSideValidation(this HtmlHelper html)
{
return new ClientSideValidationDisabler(html);
}
}
public class ClientSideValidationDisabler : IDisposable
{
private HtmlHelper _html;
public ClientSideValidationDisabler(HtmlHelper html)
{
_html = html;
_html.EnableClientValidation(false);
}
public void Dispose()
{
_html.EnableClientValidation(true);
_html = null;
}
}
Ви будете використовувати його наступним чином:
<div class="editor-field">
@using (Html.BeginDisableClientSideValidation()) {
@Html.TextBoxFor(m => m.BatchId, new { @class = "k-textbox" })
}
</div>
Якщо хтось має кращі рішення, будь ласка, дайте мені знати!
Сподіваюся, це допоможе.