Questo ha aiutato molto. Nel mio caso era un tavolo, dove erano anche possibili aggiornamenti. In questo caso la soluzione di cui sopra non funziona. Quindi volevo condividere la mia soluzione per questo caso.
Nella soluzione di seguito, ho aggiunto un campo aggiuntivo da passare al controller (la chiave primaria del modello). Quindi nel controller sto verificando se è stata data la chiave primaria. Se è così, sappiamo che siamo venuti dal sito di aggiornamento poiché è l'unico caso in cui abbiamo già un ID nel modello. L'ultimo passaggio consiste nel verificare se la stringa e la chiave primaria sono uguali. Se lo sono entrambi, va bene, perché non abbiamo cambiato nulla nella stringa. Se solo la stringa è la stessa, ma non l'ID, significa che abbiamo cambiato la stringa e l'abbiamo modificata in un'altra stringa di articoli esistente, quindi restituiamo false.
Modello:
[Key]
[Display(Name = "Idee ID")]
public int intIdeaID { get; set; }
[Required(ErrorMessage = "Dieses Feld muss ausgefüllt werden")]
[Display(Name = "Idee")]
[Remote("ideaExists", "TabIdea", HttpMethod = "POST", ErrorMessage = "Es wurde bereits eine Idee mit dieser Bezeichnung erstellt", AdditionalFields = "intIdeaID")]
public string strIdea { get; set; }
Controller:
[HttpPost]
public JsonResult ideaExists(string strIdea, int? intIdeaID)
{
if (intIdeaID != null)
{
if (db.tabIdea.Any(x => x.strIdea == strIdea))
{
tabIdea existingTabIdea = db.tabIdea.Single(x => x.strIdea == strIdea);
if (existingTabIdea.intIdeaID != intIdeaID)
{
return Json(false);
}
else
{
return Json(true);
}
}
else
{
return Json(true);
}
}
else
{
return Json(!db.tabIdea.Any(x => x.strIdea == strIdea));
}
}
Vale anche la lettura [Procedura: implementare convalida remoto in ASP.NET MVC] (https://msdn.microsoft. it/it/us/library/gg508808% 28VS.98% 29.aspx) –
Questo è esattamente quello che stavo cercando ma non funziona con la libreria twitterbootstrapmvc '@ Html.Bootstrap(). TextBoxFor (t => t. E-mail) .Placeholder ("Indirizzo email"). ShowValidationMessage (true) ' * // come convalida/invoco sul lato client qui con la lib di hellbobootstrapmvc hell * * @ Html.ValidationMessageFor (t => t.Email)' – aggie
Cosa dovrebbe Lo faccio se voglio controllare un nome utente solo su operazione di salvataggio, non su operazione di aggiornamento. – Hemal