Ich habe ein Modell und eine actionMethod in MVC;ASP.NET MVC Remote-Validierung Logik auf Bearbeiten
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);
}
Auf Create()
Aktion, es funktioniert gut. Aber auf Edit()
Aktion, Programm sieht cnic
bereits vorhanden. Und ich kann employee
mit dem gleichen cnic
nicht aktualisieren. Ich kann nicht herausfinden, wie ich zusätzliche employeeID
Feld verwenden kann, um Uniquness von Mitarbeiterobjekt während der Bearbeitung zu erreichen?
Was ist der Unterschied zwischen "int id" und "string employeeID"? Und Sie müssen die 'doScnicExist()' Methode anzeigen, die Sie versucht haben. –
@StephenMuecke 'int id' wird von der Datenbank für die Tabelle automatisch generiert und' Mitarbeiter ID' wird von der Organisation zugewiesen. Es tut mir leid, dass ich überhaupt nicht in der Lage war, über eine mögliche Logik für diese Situation nachzudenken - für 'doesCnicExist()'. Deshalb habe ich diese Frage gestellt. – Jogi
Aber Sie sagten, es funktioniert für Ihre 'Create()' Aktion. Also zeige es und dann kann es korrigiert werden, um für die 'Edit()' Methode zu arbeiten. (Bu so weit wie die Felder 'id' und 'employeeID' gehen, was ist der Punkt mit 2 Bezeichnerfelder? - Sie sollten das 'id' Feld in' AdditionalFields' verwenden, da das der Schlüssel ist) –