Asp.net mvc 4 MVC共享强类型局部视图

Asp.net mvc 4 MVC共享强类型局部视图,asp.net-mvc-4,entity-framework-5,Asp.net Mvc 4,Entity Framework 5,我试图呈现一个强类型的局部视图,并在不同的父视图之间共享它 所以我会有一个父视图,它是一个编辑表单,它有元素和位置的部分视图 @model Model.Contact .... @Html.HiddenFor(model => model.LocationID) @{Html.RenderPartial("../Shared/_Location", Model.Location);} @model Model.JobAssignment ....

我试图呈现一个强类型的局部视图,并在不同的父视图之间共享它

所以我会有一个父视图,它是一个编辑表单,它有元素和位置的部分视图

@model Model.Contact
....                
@Html.HiddenFor(model => model.LocationID)
@{Html.RenderPartial("../Shared/_Location", Model.Location);}
@model Model.JobAssignment
....                
@Html.HiddenFor(model => model.OriginLocationID)
@{Html.RenderPartial("../Shared/_Location", Model.OriginLocation);}
局部视图是编辑表单更新/插入表单

@model Model.Location
....with form elements bound to model passed
 <div class="row-fluid">
    <div class="span6">
        Address 1<br />
        @Html.EditorFor(model => model.Address1)<br />
    </div>
    <div class="span6">
        Address 2<br />
        @Html.EditorFor(model => model.Address2)<br />
    </div>
</div>......
它是OriginLocation,因为这个实体有多个FK到位置,所以我在CodeFirstMapping中对它们进行了不同的命名

    [ForeignKey("OriginLocationID")]
    public virtual Location OriginLocation { get; set; }
    [ForeignKey("DestinationLocationID")]
    public virtual Location DestinationLocation { get; set; }
数据库和实体都可以通过作业和联系人将Fk正确设置到位置

我之前所做的是Location partial view不会获得位置实体/模型,而是绑定到任何父模型,如@model model。与父视图一样联系,这将很好,因为partial view中的控件前缀为Location.*和Location_*for ID,它发挥了神奇的作用,控件为:@Html.EditorFor(model=>model.Location.Address1)

但是我正试图共享位置部分视图,就像我以前在asp.net中使用UserControls时一样,所以我想将它绑定到

我无法让它工作,我得到的最接近的是绑定数据,但在编辑/保存时,我得到了奇怪的错误

“发生了引用完整性约束冲突:当从属对象未更改时,作为引用完整性约束一部分的主键属性无法更改,除非它被设置为关联的主对象。必须跟踪主对象,并且不标记为删除。”

请有人给我指一下正确的方向