Проверка на стороне клиента с помощью ASP.NET MVC 2 с использованием механизма просмотра SPARK

Есть ли способ использовать проверку на стороне клиента с механизмом просмотра SPARK?

У меня следующий вид SPARK:

<script type="text/javascript" src="~/content/script/shared/MicrosoftAjax.js?${ApplicationStartTime}"></script>      
<script type="text/javascript" src="~/content/script/shared/jquery-ui-1.7.2.custom.min.js?${ApplicationStartTime}"></script>
<script type="text/javascript" src="~/content/script/shared/jquery.validate.min.js?${ApplicationStartTime}"></script>
<script type="text/javascript" src="~/content/script/shared/jquery.validate.unobtrusive.js?${ApplicationStartTime}"></script>
<script type="text/javascript" src="~/content/script/shared/MicrosoftMvcJQueryValidation.js?${ApplicationStartTime}"></script>


<viewdata model="Business.Models.Development.Dtos.DonationFormDto" />

#Html.EnableClientValidation();

<form id="form" action="~/development/donate.mvc" method="post">

<label>
  *First Name
</label><br/>
<input type="text" name="model.FirstName" Id="FirstName" value="${Model.FirstName}"/> ${Html.ValidationMessage("model.FirstName")}
<br/>

</form>

Проверка на стороне сервера работает нормально, а проверка на стороне клиента - нет.

Я могу заставить его работать, используя помощники ASP.NET и синтаксис такой формы:

using (Html.BeginForm("Index", "Donate", FormMethod.Post, new {id = "form", action="donate.mvc" }))
{  
    <%=Html.LabelFor( model => model.FirstName) %><br/>
    <%=Html.TextBoxFor(model => model.FirstName)%>
    <%=Html.ValidationMessageFor( model => model.FirstName) %><br/>
}

Но тогда моя модель не привязывается правильно, и проверка на стороне сервера не выполняется при отправке.

Какие-либо предложения? Отказ от SPARK и создание классического строго типизированного представления - единственный вариант?


person Ian    schedule 26.04.2011    source источник
comment
У меня возникла похожая проблема, ты нашел решение?   -  person Yasser Shaikh    schedule 20.07.2012


Ответы (1)


@KarlBear, почему вы использовали "‹% = "вместо" $ {...} "или"! {...} "в Spark?

${Html.LabelFor( model => model.FirstName)}<br/>
${Html.TextBoxFor(model => model.FirstName)}
${Html.ValidationMessageFor( model => model.FirstName)]<br/>
person Ichiro Satoshi    schedule 08.07.2011
comment
Для проверки на стороне клиента MVC2, похоже, требуется синтаксис вспомогательной функции ASP.NET, поэтому я использовал его вместо обычного синтаксиса SPARK. С синтаксисом SPARK я не мог заставить работать встроенную проверку на стороне клиента. Я слышал, что MVC3 имеет лучшую встроенную проверку на стороне клиента, которая может работать со SPARK, но я еще не изучал это. - person Ian; 14.07.2011