我是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>
我必须通过让它采用唯一值来增强验证。请帮忙
答案 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
代码似乎没问题。
希望这会对你有所帮助。