2012-05-19 98 views
2

我試圖在MVC 3中首次使用遠程數據註釋。 我缺少一些簡單的東西。安裝程序根本沒有觸發控制器操作,我也沒有看到這個問題。mvc 3遠程驗證沒有觸發

我正在嘗試驗證唯一性的用戶名。

以下是代碼設置。

查看代碼

@Html.Raw(Html.Script("jquery.validate.min.js")) 
@Html.Raw(Html.Script("jquery.validate.unobtrusive.min.js")) 

<tr> 
      <td class="editor-label">@Html.LabelFor(model => model.UserName):</td> 
      <td class="editor-field">@Html.EditorFor(model => model.UserName)</td> 
      <td>@Html.ValidationMessageFor(model => model.UserName)</td> 
     </tr> 

視圖模型代碼

[DisplayName("Username")] 
    [StringLength(100)] 
    [Remote("CheckIfUsernameExists", "UserProfile", ErrorMessage = "This username is taken. Please enter a different user name.")] 
    public string UserName { get; set; } 

控制器代碼

[HttpGet] 
     public JsonResult CheckIfUsernameExists(string userName) 
     { 
      return Json("false"); 
     } 
+0

是字符串長度的客戶端驗證射擊? – Rafay

+0

你可以找到其他選項:http://stackoverflow.com/a/37366502/4146766 –

回答

1

檢查你的設置,客戶端驗證和不顯眼的應該啓用

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

與下面的代碼應該工作

[Get] 
    public JsonResult CheckIfUsernameExists(string userName) 
    { 
     return Json(false,JsonRequestBehavior.AllowGet); 
    } 
+0

我有2個viewmodels在同一個.cs文件,並有錯誤的viewmodel dataannotation。代碼現在按預期工作,謝謝。 – Matt