【发布时间】:2017-07-17 18:46:03
【问题描述】:
在插入数据库之前,我需要验证一个输入是否唯一。我在模型类中使用了远程验证属性。
[Required(ErrorMessage = "Package name Required")]
[Remote("IsNameAvailble", "Package", ErrorMessage = "Sorry!!! This name have entered for another package")]
public string packagename { get; set; }
查看
<div class="form-group">
<label class="control-label">Package Name</label>
@Html.TextBoxFor(model => model.package_name, new { @class = "form-control", placeholder = "Name for the Package", type = "text", autofocus = "autofocus", id = "packagename" })
@Html.ValidationMessageFor(model => model.package_name)
</div>
这是控制器代码
public ActionResult IsNameAvailble(string package_name)
{
Dbfile db = new Dbfile ();
var exist= db.GetAllList().FirstOrDefault(m => m.package_name == package_name);
if (exist!= null)
{
return Json(false, JsonRequestBehavior.AllowGet);
}
else
{
return Json(true, JsonRequestBehavior.AllowGet);
}
}
这在添加新名称时效果很好 但是在编辑部分,如果我们更改其他值(除了包名,它会检查并显示错误消息)
所以我需要一种方法来使用选定的 id 检查它(如果我们使用选定的 id 进行检查,那么创建函数将不起作用)
请任何人提出答案
提前致谢
【问题讨论】:
-
问题不是那么清楚。您需要一种方法来使用选定的 ID 检查“它”。请使用完整的句子。只是在这里猜测...当您进行编辑时,将 Id 传递到视图中,然后在提交时从视图中获取 id。使用
db.Find(id)检查条目是否存在。 -
您需要使用
[Remote]属性的AdditionalFields属性也将ID 值传递给rhe 方法,以便您可以从查询中排除当前对象。 -
@StephenMuecke AdditionalFields 属性是如何使用的,假设它是一封电子邮件,你能快速描述一下或给我一个参考点来实现它
-
骗子解释了。
标签: c# asp.net-mvc validation model