Поэтому, хотя я бы по-прежнему рекомендовал использовать отдельную ViewModel для редактирования и создания, которая имеет больше архитектурных преимуществ, чем просто удаленная проверка, вы должны иметь возможность делать то, что вы хотите, используя свойство AdditionalFields
, которое вы, кажется, используете в свойстве, но не в своем обработчике проверки.
Я не в состоянии проверить это, но если вы действительно хотели бы сделать это таким образом, то вы могли бы сделать следующее:
К вашей ViewModel добавьте:
public bool IsEditing { get; set; }
Когда вы выполняете действие по редактированию, установите для этого параметра значение true (и false для действия по созданию).
[Remote("IsCityUnique", "City", AdditionalFields = "IsEditing", HttpMethod = "POST", ErrorMessage = "City name isn't unique.")]
public string CityName { get; set; }
По вашему мнению, вам может потребоваться отрендерить @Html.HiddenFor(m=>m.IsEditing)
, и тогда ваш обработчик проверки должен стать:
public JsonResult IsCityUnique(string Cityname, bool IsEditing)
{
if(editing) { /* Do editing Logic */ }
else { /* Do other logic. */ }
}
Нечто подобное должно работать, но я сейчас не в состоянии проверить это. Но вам, вероятно, будет лучше наблюдать разделение интересов и выяснить, как распределить обязанности между редактированием и созданием объекта домена.