ASP.NET EditorTemplate DropdownList

Каждый раз, когда я добавляю новое приложение, создается новая AppCategory . Я серьезно облажался с этим как-то

объекты структуры первой сущности кода

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; }
}

Шаблон редактора (я бы хотел создать только один шаблон редактора внешнего ключа)

@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();
    }

Каждый раз, когда я добавляю новый Приложение Создает новую категорию AppCategory. Я как-то серьезно облажался


Добавление дополнительной отладочной информации
 @inherits System.Web.Mvc.WebViewPage
 @Html.DropDownList("", LIG2010RedesignMVC3.Models.Repo.GetAppCategoriesSelect())

дает мне сообщение о проверке

 Parameters  application/x-www-form-urlencoded
 Category   1
 Name   8

Ошибка проверки Значение «1» недействительно.
Это имеет смысл, потому что Категория должна быть объектом, а не целым числом.


Код контроллера в соответствии с запросом для почти уверен, что проблема не в этом, поскольку она возникла из-за MVCScaffold

    [HttpPost]
    public ActionResult Create(App d)
    {
        if (ModelState.IsValid)
        {
          context.Apps.Add(d);
          context.SaveChanges();
          return RedirectToAction("Index");  
        }
        return View();
     }
9
задан MarkKGreenway 16 November 2010 в 07:25
поделиться