2016-07-29 41 views
0

我想立即檢查,我輸入文本框中的某些東西后,如果我的數據庫中存在一條記錄。我設法返回數據庫中存在多少條記錄的頁碼,但是我想返回一條消息(如果存在或不存在)。檢查記錄是否存在(即時)在MVC

所以,問題是:如果記錄存在或不存在,如何顯示消息?

PS。我真的使用ASP.NET MVC

這裏是我的代碼:

模型類:

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調用不是依賴於遠程數據註解的檢查自己。所以簡單地刪除數據註釋。

而且聽在此輸入字段keyup事件中,讀出的值,發送給服務器,以檢查它存在與否,基於此結果,顯示適當的消息

$(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") 
       } 
      }) 

     }); 
}); 

確保你返回True或從您的操作方法中錯誤。

[HttpPost] 
public JsonResult IsUniq(string FirstName) 
{ 
    //If exists 
    return Json(true); 
    else 
     return Json(false); 
}