у меня есть это поле называется MOBILE_NUMBER в моем классе друзьяКак проверить функцию, с какого вида?
[Remote("CheckMobileDuplicate", "Friends", ErrorMessage = "This mobile number is already in use", AdditionalFields = "Friend_Id")]
public string Mobile_Number { get; set; }
В настоящее время существует 2 мнения, в которых размещать обратно происходит для модели класса друзей, создать вид и вид редактирования.
функцияМой CheckMobileDuplicate выглядит следующим образом
public JsonResult CheckMobileDuplicate(string Mobile_Number,int Friend_Id)
{
if (db.Friends.Any(x => (x.Mobile_Number == Mobile_Number) && (x.Friend_Id != Friend_Id))
return Json(false, JsonRequestBehavior.AllowGet);
else
return Json(true, JsonRequestBehavior.AllowGet);
}
Теперь условию x.Friend_Id != Friend_Id
Проверяет, если Friend_Id уже существует так, когда мы проверяем в режиме редактирования не сравнить MOBILE_NUMBER к MOBILE_NUMBER из тот же друг в базе данных.
Но в создании Friend_Id не определено, поскольку строка в таблице базы данных еще не создана и, следовательно, это не работает для create.
Так как я могу проверить функцию, вызвана ли она из представления создания или редактирования, потому что недействительность Friend_Id не является параметром?
Лучший вариант: Creat e 2 отдельные модели просмотра с различными атрибутами '[Remote]'. Другой параметр: Сделать параметр 'Int? Friend_Id', (вам не нужно менять модель) и проверьте «If (Friend_Id.HasValue)» - если это значит, вы знаете, знаете ли вы, что редактируете существующий «Друг», иначе вы создаете нового «Друга» и можете настроить запрос соответственно –
@StephenMuecke Я использую базу данных сначала, а Friend_Id определен в модели домена, поэтому каждый раз, когда я обновляю базу данных, она перезаписывает код, который я изменил, и как я могу сделать его nullable –
Вы прочитали мой первый комментарий? Оба варианта работают. И что вы имеете в виду, что он перезапишет код_? –