[英]How to keep related entities on object when returned from ASP.NET MVC view
我正在使用实体框架开发 ASP.NET MVC RC2 应用程序。
这是我的实体图。
在我的存储库中,我得到这样的实体:
public Product GetProduct(int id)
{
return (from c in _entities.ProductSet.Include("User")
where c.Id == id
select c).FirstOrDefault();
}
我的观点:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<SampleApp.Models.Product>" %>
编辑产品
<h2>Edit product</h2>
<%= Html.ValidationSummary("Edit was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()) {%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="Id">Id:</label>
<%= Model.Id %>
</p>
<p>
<label for="Title">Title:</label>
<%= Html.TextBox("Title", Model.Title) %>
<%= Html.ValidationMessage("Title", "*") %>
</p>
<p>
<label for="Body">Body:</label>
<%= Html.TextBox("Body", Model.Body) %>
<%= Html.ValidationMessage("Body", "*") %>
</p>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
<% } %>
<div>
<%=Html.ActionLink("Back to List", "Index") %>
</div>
问题和我的问题是:当从帖子视图返回“产品”实体时,链接实体“用户”是 null。 为什么会这样,有没有办法解决这个问题?
因为 productToEdit 是从表单字段填充的新产品 object,如果您没有用户字段,您将如何填充用户实体
对于“解决方法”,首先从数据库中获取产品,使用 productToEdit 中的已编辑字段对其进行编辑并保存到数据库
您还可以选择使用了解您的 model 和持久性策略的自定义 ModelBinder 将图形完全加载回 memory。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.