Исключить вложенные свойства из привязки - [Bind (Exclude = "SomeProperty")] - PullRequest
1 голос
/ 20 августа 2011

У меня есть простая ViewModel, как указано ниже

[Bind(Exclude = "State")]
public class CityViewModel {
    public int Id {get;set;}
    public int StateId { get; set; }
    public City City { get; set; }
}

Свойство City имеет навигационную ссылку на объект "State". На мой взгляд, я пытаюсь добавить новый город, используя CityViewModel выше. При добавлении города я хочу, чтобы MVC игнорировал свойство «City.State», чтобы оно не связывалось и не проверялось. Поэтому я использую [Bind(Exclude = "State")] на моей CityViewModel. Удивительно, но в контроллере я получаю ошибку модели для поля «City.State» (которое я пытаюсь исключить из привязки и проверки).

Как мне сказать MVC пренебрегать свойством "City.State" от привязки и проверки?

Редактировать: я также пытался [Bind(Exclude = "City.State")], но не работает. Я все еще получаю Model.IsValid ложь.

1 Ответ

2 голосов
/ 20 августа 2011

Проверка является отдельным шагом от привязки и всегда будет работать со всеми свойствами модели, поэтому исключение привязки не помешает проверке City.State

Вы можете позвонить

ModelState["City.State"].Errors.Clear();

перед проверкой Model.IsValid.

P.S. Я бы предпочел добавить другой класс viewmodel с правильным набором свойств, а затем использовать обходной путь, который я упомянул выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...