我在 MVC 中设置了一个远程验证器,以确保在我的页面上创建或编辑公司时该公司不存在。这是模型:
public class AdminCompany
{
public int CompanyId { get; set; }
[Display(Name = "Company Name")]
[Required(ErrorMessage = "Company Name is required")]
[Remote("DoesCompanyExist", "Ajax", HttpMethod = "POST", ErrorMessage="This company already exists.")]
public string CompanyName { get; set; }
public string PortalsString { get; set; }
}
这是DoesCompanyExist
功能:
[HttpPost]
[AjaxOnly]
public JsonResult DoesCompanyExist(string CompanyName)
{
var companies = new Companys();
companies.GetBySqlStatement("SELECT CompanyName FROM Company WHERE CompanyName='{0}'", CompanyName);
return Json(companies.Count == 0);
}
除了一个问题,一切都很好。在我的编辑页面上,如果用户进入公司的编辑页面,然后只保存它而不更改任何内容,我的远程验证器将触发验证错误。原因是该公司实际上已经存在于数据库中,但是,我的远程验证器没有意识到它正在修改相同的记录。
有什么解决办法吗?理想情况下,如果我能以某种方式将 CompanyId 传递给我的远程验证器,那就太好了。这样我就可以从我的SELECT
声明中排除该 ID。