2013-09-16 4 views
0

Мое приложение в основном является генератором опроса/тестирования, который может выводить широкий спектр типов вопросов в зависимости от того, что необходимо. У меня есть модель для каждого типа вопросов. Однако моя проверка не работает (на стороне клиента все, что я прошу, я могу сделать серверную сторону).Проверка ASP.NET MVC не работает при использовании литья моделей

Некоторые из моего кода:

@model IEnumerable<fsForms.Models.abstractQuestion> 

@using(Html.BeginForm()) 
{ 
@Html.ValidationSummary(true) 
foreach(var item in Model) { 
    switch(item.questionType){ 
    case 1: 
     { 
      if(item.isRequired) 
      { 
       var txtReq = (fsForms.Models.FreeTextReq)item; 
       @Html.EditorFor(model=> txtReq.textboxVal); 
       @Html.ValidatorMessageFor(model=>txtReq.textboxVal); 
      } 
     } 
    } 
} 
} 

Моя модель просто:

public class FreeTextReq:abstractQuestion 
{ 
    [Required(ErrorMessage="This field is required")] 
    public String textboxVal; 
} 

Спасибо за любой вклад.

PS: Результирующий HTML выглядит следующим образом:

<body> 
<form action="blahblahblah" method="post"> 
<input class="text-box single-line" id="txtReq_textboxVal" type="text" value="" /> 
<span class="field-validation-valid" data-valmsg-for="txtReq.textboxVal" data-valmsg-replace="true"></span> 
<input type="submit" value="submit info"> 
</form> 

////////Here follow all my scripts (including jQuery validation scripts) //////////// 
</body> 
+0

Не могли бы вы опубликовать сгенерированный HTML? – Fals

+0

Я отредактировал вопрос, чтобы показать результат. – RealityDysfunction

+1

Посмотрите data-valmsg-for = "txtReq.textboxVal" и id = "txtReq_textboxVal". Они разные, они должны соответствовать проверке работы. Попробуйте создать каждый фил без html-помощника или заставить атрибут ID быть передатчиком, передающим htmlAttributes помощнику! – Fals

ответ

0

Убедитесь ClientValidationEnabled и UnobtrusiveJavaScriptEnabled значение истина в web.config.

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 

Кроме того, необходимо включить сценарии проверки JQuery

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 
+0

У меня уже есть это. – RealityDysfunction

Смежные вопросы