У меня проблемы с отправкой нескольких моделей для просмотра в mvc.
Моя проблема заключается в следующем.
Используя EF4, у меня есть таблица с атрибутами, упорядоченная по категориям.
Не удалось опубликовать изображение :-(
[Иметь таблицу с атрибутами (AttributeTitle, AttributeName, CategoryID), связанную с таблицей с именем Category (CategoryTitle).]
Что я хочу сделать, так это иметь возможность редактировать атрибутную сущность и иметь выпадающий список категорий для выбора.
Я пытался сделать пользовательскую модель просмотра
public class AttributeViewModel
{
public AttributeViewModel()
{
}
public Attribute Attribute { get; set; }
public IQueryable<Category> AllCategories { get; set; }
}
Но это просто закончилось беспорядком.
<div class="editor-field">
<%: Html.DropDownList("Category", new SelectList((IEnumerable)Model.AllCategories, "CategoryID", "CategoryName")) %>
</div>
Я возвращал его на контроллер ...
[HttpPost]
public ActionResult Edit(int AttributeID, FormCollection formcollection)
{
var _attribute = ProfileDB.GetAttribute(AttributeID);
int _selcategory = Convert.ToInt32(formcollection["Category"]);
_attribute.CategoryID = (int)_selcategory;
try
{
UpdateModel(_attribute); (<---Error here)
ProfileDB.SaveChanges();
return RedirectToAction("Index");
}
catch (Exception e)
{
return View(_attribute);
}
}
Я отладил код, и мой _attribute выглядит правильно, а _attribute.CategoryID = (int) _selcategory обновляет модель, но затем я получаю ошибку.
Где-то здесь я думал, что должен быть более чистый способ сделать это, и что если бы я мог только отправить две модели в представление вместо того, чтобы создавать пользовательскую модель представления.
Подводя итог:
Я хочу изменить свой атрибут и раскрыть список всех доступных категорий.
Любая помощь высоко ценится!