MVCにモデルとアクションメソッドがあります。編集時のASP.NET MVCリモート検証ロジック
public class employee
{
[Key]
public int id { get; set; }
[Required]
public string employeeID { get; set; }
[Required]
[Remote("doesCnicExist", "employee", AdditionalFields = "employeeID", HttpMethod = "POST", ErrorMessage = "A user with this cnic already exists. Please enter a different cnic.")]
public string cnic { get; set; }
}
[HttpPost]
public JsonResult doesCnicExist(string employeeID, string cnic)
{
var empList = hc.employee.ToList();
bool flag = false;
foreach (employee e in empList)
{
if ((employeeID == e.employeeID) && (cnic == e.cnic))
{
flag = true;
}
}
return Json(flag == false);
}
Create()
アクションでは、それは素晴らしい動作します。しかし、Edit()
アクションでは、プログラムはすでにcnic
が存在するとみなします。そして、employee
を同じcnic
で更新することはできません。私は追加のemployeeID
フィールドを使用して、編集中に従業員オブジェクトの一意性をどのように得ることができるのか分かりませんか?
'int id'と' string employeeID'の違いは何ですか?そして、あなたが試した 'doesCnicExist()'メソッドを表示する必要があります。 –
@StephenMuecke 'int id'はテーブルのデータベースによって自動生成され、' Employee ID'は組織によって割り当てられます。申し訳ありませんが、私はこの状況のために考えられる論理について、 'doesCnicExist()'について全く考えることができませんでした。だから私はこの質問をしました。 – Jogi
しかし、それはあなたの 'Create()'アクションのために働くと言いました。それを表示して、 'Edit()'メソッドのために修正することができます。 ( 'id'と' employeeID'フィールドまでは2つの識別子フィールドがありますが、それは 'AdditionalFields'の' id'フィールドを使うべきです) –