我認爲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