MVC中的验证消息,用于通过从数据库验证来提取唯一值

时间:2016-09-19 08:48:03

标签: asp.net asp.net-mvc validation razor

我是MVC的新手。我想在cshtml文件中为输入文本框添加验证消息。输入应具有建筑物名称。它应该只在从数据库验证后采用唯一的名称。我应该如何为此输入框编写验证消息。请帮忙。 代码如下:

<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>

我必须通过让它采用唯一值来增强验证。请帮忙

1 个答案:

答案 0 :(得分:0)

您可以使用DataAnotation Remote属性,如下所示:

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代码似乎没问题。

希望这会对你有所帮助。