2016-07-12 3 views
0

Я просто не могу узнать, что не так. Я стараюсь не разрешать установку нулевых значений в поле, когда пользователь пытается это сделать, он должен отображать сообщение «*» и ждать, пока он установит значения, но он не работает, а нулевые значения успешно отправлены в действие. Модель:Проверка не работает mvc

public class CompanyMainInfoModel 
{ 
    public int CompanyId { get; set; } 

    [Required(ErrorMessage = "*")] 
    [Display(Name = "company_name", ResourceType = typeof(Localization))] 
    public string CompanyName { get; set; } 

    [Required(ErrorMessage = "*")] 
    [Display(Name = "company_address", ResourceType = typeof(Localization))] 
    public string CompanyAddress { get; set; } 

    [Required(ErrorMessage = "*")] 
    [Display(Name = "company_director", ResourceType = typeof(Localization))] 
    public string CompanyDirector { get; set; } 

    [Required(ErrorMessage = "*")] 
    [Display(Name = "company_phone", ResourceType = typeof(Localization))] 
    public string CompanyTelephoneNumber { get; set; } 
} 

Markup:

@model BTGHRM.Models.CompanyMainInfoModel 
@{ 
    Layout = "~/Views/Shared/_EmployeeMain.cshtml"; 
} 

<head> 
    <script src="~/Scripts/jquery-1.10.2.js"></script> 
    <script src="~/Scripts/jquery-ui.js"></script> 
    <script src="~/Scripts/jquery.validate.unobtrusive.js"></script> 
    <script src="~/Scripts/jquery.validate.js"></script> 
</head> 

<body> 

    <span class="content_h4">@Resources.Localization.company_info</span> 
    <br /> 
    <br /> 

    <div id="FormContainer"> 
     @Html.Partial("Partial/_CompanyInfo", Model) 
    </div> 


</body> 

Частичное Markup:

@model BTGHRM.Models.CompanyMainInfoModel 

@using (Html.BeginForm("CompanyInfo", "Administration")) 
{ 
    <table> 
     <tr> 
      <td>@Html.LabelFor(m => m.CompanyName)</td> 
      <td>@Html.TextBoxFor(m => m.CompanyName)</td> 
      <td>@Html.ValidationMessageFor(m => m.CompanyName, "" , new { @class="text-danger"})</td> 
     </tr> 
     <tr> 
      <td>@Html.LabelFor(m => m.CompanyAddress)</td> 
      <td>@Html.TextBoxFor(m => m.CompanyAddress)</td> 
      <td>@Html.ValidationMessageFor(m => m.CompanyAddress, "", new { @class = "text-danger" })</td> 
     </tr> 
     <tr> 
      <td>@Html.LabelFor(m => m.CompanyDirector)</td> 
      <td>@Html.TextBoxFor(m => m.CompanyDirector)</td> 
      <td>@Html.ValidationMessageFor(m => m.CompanyDirector, "", new { @class = "text-danger" })</td> 
     </tr> 
     <tr> 
      <td>@Html.LabelFor(m => m.CompanyTelephoneNumber)</td> 
      <td>@Html.TextBoxFor(m => m.CompanyTelephoneNumber)</td> 
      <td>@Html.ValidationMessageFor(m => m.CompanyTelephoneNumber, "", new { @class = "text-danger" })</td> 
     </tr> 
    </table> 
    <input style="width:78px" type="submit" [email protected] /> 
} 

И, несмотря на [Требуется] он все еще позволяет мне установить нулевые значения для любого поля. Что не так с моим кодом?

+0

Включили ли вы соответствующую ссс ips в представлении? –

+0

да, а [требуется] работает на других страницах, кроме этого. – GeekyNuns

+0

Ваши скрипты в неправильном порядке. 'jquery' должен быть первым (перед' jquery.validate' и 'jquery.validate.unobtrusive') –

ответ

2

Вы должны иметь ненавязчивые скрипты включены в веб-конфигурации

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

Затем вам нужно добавить

  • Jquery
  • jquery.validate.js
  • jquery.validate.unobtrusive. js
2

В вашем представлении вам нужно добавить «jquery.validate.js» и «jquery.validate.unobtrusive.js». Для проверки требуется два вышеуказанных файла вместе с «Jquery.js». Надеюсь это поможет.

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