2016-09-19 4 views
0

私はMVCを初めて使用しています。私はcshtmlファイルの入力テキストボックスに検証メッセージを追加したいと思います。入力には建物名が必要です。データベースから検証した後には、一意の名前だけを使用する必要があります。この入力ボックスにどのように検証メッセージを書くべきですか?助けてください。 コードは以下の通りです:私はそれが一意の値をとるせることで検証を強化する必要がありデータベースから検証して一意の値を抽出するMVCの検証メッセージ

<tr> 
    <td style="height: 0.3em;width: 22em;"> 
    <div style="margin-top: -0.0em;margin-left: 0.8em;"> 
      @Html.TextBoxFor(model => model.buildingName, new { @class = "InfoTextBox", @placeholder = "Building name", id = "buildingName", maxlength = 25, onkeyup = "FormDirty();" }) 
      <br />         
      @Html.ValidationMessageFor(model => model.buildingName) 
      <span style="position: absolute; top: 6.6em; left: 14.8em; color: #FF0000; font-size: 1.7em;">*</span> 
    </div> 
    </td> 

のViewModel:

[System.ComponentModel.DisplayName("buildingName")] 
    [System.Web.Mvc.Remote("CheckBuildingName", "ControllerName", AdditionalFields = "buildingName", HttpMethod = "Post")] 
    public string buildingName { get; set; } 

コントローラー:

[AcceptVerbs(HttpVerbs.Post)] 
public JsonResult CheckBuildingName() { 
    string _buildingName = Request.Form["buildingName"]; // put your control name here 
    if (repository.isExist(_buildingName)) { 
     return Json("Building already taken, Pleaes try with different name.", JsonRequestBehavior.AllowGet); 
    } else { 
     return Json(true, JsonRequestBehavior.AllowGet); 
    } 
} 

あなた.cshtmlコードは罰金だあなたは以下のように、このためにDataAnotationリモート属性を使用することができます

+0

[リモート]属性を使用することができます - [方法:ASP.NET MVCでリモート検証を実装する](https://msdn.microsoft.com/en-us/library/gg508808(vs98) .aspx) –

答えて

0

を助けてください。

希望すると、これが役立ちます。

+0

.cshtmlファイルに変更を加える必要はありませんか? repository.isExistの意味は?その行では、次のコードを使用してデータベースに直接アクセスできます。 –

+0

using(var context2 = new Notifier.AccountDatabase(connectionstring)) { var objBuilding =(from context2.Buildingsbuilding.buildingName == modelの場合) buildingName && building.buildingActive == true 選択ビルド).FirstOrDefault(); –

+0

IsExistは、レコードが存在するかどうかデータベーステーブルの値をチェックする必要があることを意味します。 –

関連する問題