use*_*808 2 entity-framework unobtrusive-validation asp.net-mvc-4
我需要为我的字段实现唯一的验证检查
[Key]
[Required]
[DisplayName("Tag")]
public string Tag { get; set; }
Run Code Online (Sandbox Code Playgroud)
此标记已存在错误...
小智 14
您可以使用远程验证规则来实现此目的.将此规则添加[Remote("IsTagAvailble", "MyController", ErrorMessage = "Tag Already Exist.")]到"标记"字段.你的新代码将是
[Key]
[Required]
[DisplayName("Tag")]
[Remote("IsTagAvailble", "MyController", ErrorMessage = "Tag Already Exist.")]
public string Tag { get; set; }
Run Code Online (Sandbox Code Playgroud)
第一个参数是Action名称,第二个参数是控制器名称,第三个参数是要显示给用户的错误文本.现在在控制器中定义这个新动作,例如样本中的MyController.
public class MyController : Controller
{
public ActionResult IsTagAvailble(string Tag)
{
using (DataBaseContext db = new DataBaseContext())
{
try
{
var tag = db.TABLE_NAME.Single(m => m.Tag == Tag);
return Json(false, JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将远程验证标记字段的唯一性,并使用不显眼的javascript向用户显示错误.
最后你的观点应该是这样的
@Html.TextBoxFor(m => m.Tag) @Html.ValidationMessageFor(m => m.Tag)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6408 次 |
| 最近记录: |