7

ここに私のモデルコードがあります

public class BlobAppModel
{
   [Required(ErrorMessage="Please enter the name of the image")]
   [Remote("IsNameAvailable","Home",ErrorMessage="Name Already Exists")]
   public string Name { set; get; }           
}

そして、私のコントローラーには

public JsonResult IsNameAvailable(string Name)
{
   bool xx= BlobManager.IsNameAvailable(Name);
   if (!xx)
   {
      return Json("The name already exists", JsonRequestBehavior.AllowGet);
   }
   return Json(true, JsonRequestBehavior.AllowGet);
}

そして、私のデータには

public static bool IsNameAvailable(string Name)
{
   var test = "";
   using (var x = new BlobTestAppDBEntities())
   {
       try
       {
            test=x.BlobApps.Where(m => m.Name == Name).FirstOrDefault().Uri;
            if (test != null)
               return false;
            else
               return true;
       }
       catch (Exception)
       {
          return true;
       }
   }
}

私の見解では、スクリプトも追加しました

<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>
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {

    <td> @Html.Label("Name:") 
                 @Html.TextBoxFor(m => m.Name)
                 @Html.ValidationMessageFor(m=>m.Name)</td>}

しかし、リモート検証はまったく起動していません..コードに問題はありますか?

4

4 に答える 4

13

検証メソッドが [AllowAnonymous] 属性で装飾されていることを確認してください ([HttpPost] も必要な場合があります)。

[AllowAnonymous]
public JsonResult IsNameAvailable(string Name)

また、ヒント: ブラウザーの開発者ツール (主要なブラウザーでは F12 ボタン) を使用して、Json リクエストのステータスを確認してください。

于 2014-07-25T09:31:03.373 に答える
3

私はこれが少し遅れていることを知っています.Razor構文を使用している場合は、あなたが行ったことすべてに加えて、次のことも必要であることがわかりました:

@Scripts.Render("~/bundles/jqueryval")
于 2016-05-05T06:02:06.390 に答える