我认为Remote Validation可以帮助你解决这个问题。你可以用它来检查数据库中存在的目录编号:
public class Line
{
[Remote("QueryCatalogNumberExists", "Home")]
public int CatalogNumber { get; set; }
public int TeamCode { get; set; }
}
然后在你的控制器(我没有测试代码,但它应该是沿东西线):
public JsonResult QueryCatalogNumberExists(int catalogNumber)
{
if (_repository.QueryCatalogNumberExists(catalogNumber))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json(false, JsonRequestBehavior.AllowGet);
}
我相信你也可以有额外的领域,这样你就可以检查产品目录号对于给定的TeamCode是否有效(我认为TeamCode必须是可以为空的,因为用户在当前输入目录号之前可能不会输入一个模型不需要团队代码)。所以,你的模型应该是:
public class Line
{
[Remote("QueryCatalogNumberExistsForTeamCode", "Home", AdditionalFields = "TeamCode")]
public int CatalogNumber { get; set; }
public int TeamCode { get; set; }
}
和控制器代码:
public JsonResult QueryCatalogNumberExistsForTeamCode(int catalogNumber, int? teamCode)
{
if (_repository.QueryCatalogNumberExistsForTeamCode(catalogNumber, teamCode))
{
return Json(true, JsonRequestBehavior.AllowGet);
}
return Json(false, JsonRequestBehavior.AllowGet);
}
我希望这点你在正确的方向来解决。
哇,这是一个非常好的答案!我现在要去试试它。 – gdoron 2011-04-04 05:37:52