每當我添加一個新的應用程序它創建一個新的AppCategory。我很認真地擰緊這在某種程度上ASP.NET EditorTemplate DropdownList
代碼第一個實體框架對象
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();
}
每當我添加一個新的應用程序它創建一個新的AppC ategory我很認真地擰緊這在某種程度上
增加更多的調試信息
@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();
}
我不知道你的問題是什麼,或者你是怎麼對文章的給予好評。你有沒有在調試器中通過程序來縮小發生問題的地方? – 2010-11-15 20:48:54
從控制器[HttpPost] public ActionResult創建(應用d)我得到d.Category爲空(這就是爲什麼它創建一個新的),但我不知道爲什麼我得到d.Category爲空 – MarkKGreenway 2010-11-15 21:26:30
請發佈您的控制器代碼。我相當確定問題在那裏。 – jfar 2010-11-16 17:07:51