Каждый раз, когда я добавляю новое приложение, создается новая категория приложений .Я как-то серьезно облажался с этим
кода объектов инфраструктуры первого объекта
public class AppCategory
{
public int ID { get; set; }
public string Name { get; set; }
public ICollection<App> apps { get; set; }
}
public class App
{
public int ID { get; set; }
public string Name { get; set; }
public AppCategory Category { get; set; }
}
Шаблон редактора (я бы хотел сделать только один шаблон внешнего ключа EditorTemplate)
@inherits System.Web.Mvc.WebViewPage
@Html.DropDownList("Category", LIG2010RedesignMVC3.Models.Repo.GetAppCategoriesSelect())
и, конечно, хранилище
public static IEnumerable<SelectListItem> GetAppCategoriesSelect()
{
return (from p in GetAppCategories()
select new SelectListItem
{
Text = p.Name,
Value = p.ID.ToString(),
});
}
public static ICollection<AppCategory> GetAppCategories()
{
var context = new LIGDataContext();
return context.AppCategories.ToList();
}
Каждый раз, когда я добавляю новое приложение, оно создает новую категорию приложений. Я серьезно как-то облажался
Добавление дополнительной информации отладки @inherits System.Web.Mvc.WebViewPage
@Html.DropDownList("", LIG2010RedesignMVC3.Models.Repo.GetAppCategoriesSelect())
выдает мне сообщение о проверке сообщения
Parameters application/x-www-form-urlencoded
Category 1
Name 8
Ошибка проверки Значение '1' недопустимо.
Это делаетсмысл, потому что Category должен быть объектом, а не целым числом.
Код контроллера в соответствии с запросом почти уверен, что это не проблема, так как он пришел из MVCScaffold
[HttpPost]
public ActionResult Create(App d)
{
if (ModelState.IsValid)
{
context.Apps.Add(d);
context.SaveChanges();
return RedirectToAction("Index");
}
return View();
}