Попытка обновить / создать свойство навигации с помощью шаблона редактора - PullRequest
0 голосов
/ 23 апреля 2011

Я должен сказать, что я довольно новичок в MVC и что в последний раз я писал код на C # ... около 4 лет назад:)

Это сценарий:

"Магазины"

  • ShopID
  • Имя
  • (другие материалы)
  • CityID

"Города"

  • CityID
  • Имя
  • (прочее)

Таблица "Магазин" имеет свойство навигации "Город"

Я создал шаблон редактора "City" в своем проекте MVC 3.Этот шаблон использует jQuery для поиска и заполнения скрытого поля с помощью CityID.

Форма «Мой магазин» (используется совместно с действиями «Редактировать» и «Создать») использует Html.EditorFor (model => model.City) для свойства навигации City.вместо использования столбца CityID.

Суть в том, что id не работает, поскольку контроллер пытается обновить неполный объект City:

Невозможно вставитьзначение NULL в столбце «Имя», таблица «C: \ USERS \ ANDREA \ DOCUMENTS \ VISUAL STUDIO 2010 \ PROJECTS \ INCONSEGNA \ INCONSEGNA \ APP_DATA \ INCONSEGNA.MDF.dbo.Cities ';столбец не допускает пустых значений.Вставить не удается.Утверждение было прекращено.

Справедливо, я не возвращаю полный объект "City", но на самом деле мне нужен только элемент CityID: остальное бесполезно или должно бытьполученный шаблоном редактора (что, насколько я вижу, сделать невозможно).

Честно говоря, я бы предпочел использовать шаблон редактора только для столбца CityID таблицы магазинов (илидругие таблицы, которые будут иметь такой же столбец).Это означало бы, что мне нужно создать шаблон редактора для общего типа "int" и что я должен явно объявить, какой шаблон редактора я хочу использовать при вызове Html.EditorFor (): я бы предпочел позволить MVC выяснитьчто для столбца CityID (типа int) должен использоваться пользовательский шаблон редактора "City" или даже "CityID": поэтому я попытался использовать тип "City" свойства навигации.

Любой совет?

1 Ответ

0 голосов
/ 01 октября 2011

За пять месяцев я понял, насколько глупым был мой вопрос, но в то время у меня не было достаточно знаний, чтобы понять, как правильно работать с Entity Framework и MVC.

Я думаю, что могу ответитьмой собственный вопрос о том, что я не должен создавать шаблоны редактора для свойства навигации, когда я могу свободно работать со свойством объекта, связанным с внешним ключом, и, если мне нужно добавить в ViewModel (или ViewData) все данныеМне нужно показать выпадающий список (см. Поздно).

В этом случае внешний ключ будет CityID.Когда я вызываю Html.EditorFor (), я могу указать там, какой шаблон (например, «CitySelector» или что я хочу) я должен использовать (возможно, я даже могу использовать аннотацию данных во ViewModel: я не знаю об этом).

Образец EditorTemplate будет частичным представлением с именем «CitySelector» в папке EditorTemplates: там я могу отобразить раскрывающийся список или, что еще лучше, текстовое поле автозаполнения (jQuery).Решение jQuery было бы лучшим подходом для отображения списка городов без загрузки всех из них в ViewModel / ViewData.

Надеюсь, что правильно ответил на мой собственный вопрос:)

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