2016-07-29 10 views
0

データベースにレコードが存在する場合は、テキストボックスに何かを入力した後、即座にチェックしたいと思います。私はデータベースにレコードが何回存在するかを自分のページ番号に戻すことができましたが、メッセージがある場合はそれを返したいと思います。MVCにレコードが存在するかどうかチェックする

したがって、問題は次のとおりです。レコードが存在するかどうかはどうすればメッセージを表示できますか?

PS。 I`mはここでASP.NET MVC

を使用して私のコードです:

Modelクラス:

public class AdminModel 
{ 
    [Remote("IsUniq", "Home", HttpMethod = "POST")] 
    public string FirstName { get; set; } 
} 

私のコントローラのアクション(にHomeController):

[HttpPost] 
    public JsonResult IsUniq(string FirstName) 
    { 
     IPAdressProgramEntities r = new IPAdressProgramEntities(); 
     var user = r.spLineExist(FirstName);//spLineExist - procedure in SQL- return how many time record exist in database 

     return Json(user); //return on my page how many times record exists 
    } 

そして、これが私の見解であります:

@using (Html.BeginForm()) 
{ 
<div class="editor-field"> 
    @Html.EditorFor(model => model.FirstName) 
    @Html.ValidationMessageFor(model => model.FirstName) 
</div> 
} 

PS WebConfigが設定され、スクリプトも私のビューに含まれています。 ありがとうございます。

+0

両方のメッセージ(Exist/Not Exist)を表示しますか? – Shyju

+0

はい。もしかしたらちょうど存在しないかもしれません(もし簡単ならば) –

+2

あなたは数があれば、それが0かどうかをチェックできませんか? –

答えて

1

カウントが0より大きい場合にメッセージを表示したい場合は、データアノテーションにエラーメッセージプロパティを追加します。

[Remote("IsUniq", "Home", HttpMethod = "POST", ErrorMessage = "Exist")] 
public string FirstName { get; set; } 

とあなたのアクションメソッドからfalsetrueを返します。エラーメッセージを表示するには、メソッドからfalseを返す必要があります。

var responseToSend = user!=0; //user is the count returned by your existing code 
return Json(responseToSend); 

あなたがメッセージ(存在/未存在する)の両方を表示したい場合は、リモートデータ注釈に頼るよりも、少しjQueryのAJAX呼び出しを自分でチェックを扱う検討することができます。データアノテーションを削除するだけです。

そして、あなたは真を返すことを確認してください

$(function() { 

    $("#FirstName") 
     .keyup(function() { 
      $.post('/Home/IsUniq?FirstName=' + $(this).val(), function (res) { 
       if (res) { 
        $("span[data-valmsg-for='FirstName']").text("Not Available") 
       } else { 
        $("span[data-valmsg-for='FirstName']").text("Available") 
       } 
      }) 

     }); 
}); 

ショー適切なメッセージ、その結果に基づいて、それが存在かを確認するためにサーバに送信、値を読んで、この入力フィールド上のkeyUpイベントに耳を傾けますかあなたのアクションメソッドからFalse。

[HttpPost] 
public JsonResult IsUniq(string FirstName) 
{ 
    //If exists 
    return Json(true); 
    else 
     return Json(false); 
} 
関連する問題