如何将主视图模型的一部分传递给局部视图

时间:2010-10-14 14:54:26

标签: asp.net-mvc

我有以下视图模型,其中包含school和Address对象,如

namespace myapplication.ViewModels
{ 
    public class SchoolViewModel
    {
        public Address schoolAddress { get; set; }
        public School school { get; set; } 

    }
} 

我有学生,老师和其他具有addressId字段地址的对象,当我创建学校对象时,由于学校对象有addressID,我必须通过对地址对象进行局部视图来创建地址对象和学校对象,这样我就不会重复所有需要地址的对象的地址字段。所以学校创建视图将具有SchoolViewModel,以接受两个对象字段。因此,创建视图是SchoolViewModel对象的强类型视图。对于地址创建,我使用Model.schoolAddress对象进行强类型的局部视图。问题是Model.schoolAddress为null。喜欢<%Html.RenderPartial(“addressPartilaView”,Model.schoolAddress);%>但是当地址局部视图强烈输入SchoolViewModel对象时,我可以获得schoolAddress的值。拜托,请您给我一些想法,或者我如何处理其他解决方案?

1 个答案:

答案 0 :(得分:0)

我真的建议重新写一下你的问题,以便更清楚。

然而,在努力破译你的意思之后,我认为问题在于你有时会将schoolAddress作为模型传递,然后仍然希望模型具有schoolAddress的属性。

如果你这样做

<% Html.RenderPartial("addressPartialView", Model.schoolAddress);%> 

然后Model中的addressPartialView将没有schoolAddress属性,它将是schoolAddress的实例。

当然,如果这个基础很好,那么我强烈建议重新修改原来的问题。