Проверка на стороне клиента с ASP.NET MVC 2 с использованием механизма представления SPARK - PullRequest
0 голосов
/ 26 апреля 2011

Есть ли способ использовать проверку на стороне клиента с механизмом просмотра 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 Helpers и синтаксис формы следующим образом:

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 и создание классического строго типизированного представления единственной возможностью?

1 Ответ

0 голосов
/ 08 июля 2011

@ KarlBear, почему вы использовали "<% =" вместо "$ {...}" или "! {...}" в spark? </p>

${Html.LabelFor( model => model.FirstName)}<br/>
${Html.TextBoxFor(model => model.FirstName)}
${Html.ValidationMessageFor( model => model.FirstName)]<br/>
...