Я использую ASP.NET MVC3 с Entity Framework.
У меня есть Widget
контроллер со стандартными действиями CRID Widget.
В своем действии Create я успешно создал новый объект Widget
, который имеет два объекта FooBar
. Это добавляется в мою базу данных просто отлично, и действие перенаправляет на действие View.
[HttpPost]
public ActionResult Create(Widget model)
{
if (ModelState.IsValid)
{
//At this point, the widget has two FooBar properties. I can see the values for these FooBars just fine.
if (repo.AddWidget(model))
{
ViewBag.Message = "Your widget has been created.");
return RedirectToAction("View", new { id = model.Id });
}
else
{
ViewBag.Error = "Woops, something went wrong. Please try again.");
}
}
return View(model);
}
В действии View я извлекаю только что созданный Widget
из своего репозитория - за исключением того, что теперь два свойства FooBar
равны нулю.
public ActionResult View(int id)
{
var widget = repo.GetWidget(id);
if (widget == null)
{
ViewBag.Error = "No widget found for the specified ID";
return RedirectToAction("Find");
}
//At this point, the widget has two null values for the FooBar1 and FooBar 2 properties
return View(widget);
}
В самой базе данных я вижу правильные значения FooBar
ID на моем Widget
.
Моя модель настроена почти так же, как показано в этом руководстве:
http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx
public class WidgetContext : DbContext
{
public DbSet<Widget> Widgets { get; set; }
public DbSet<FooBar> FooBars { get; set; }
}
Кто-нибудь может подсказать, как мне начать отслеживать эту проблему?
Обновление:
Я должен уточнить, что значения равны нулю всякий раз, когда я вызываю действие View, а не только после Create.