如何将引用变量传入RenderPartial?

时间:2012-09-05 06:39:54

标签: asp.net-mvc-3 c#-4.0 razor

我正在尝试将模型类商店传递给RenderPartial。 renderpartial的目标是更改/设置此(存储)模型的值。我一直在尝试这样:

@{ Html.RenderPartial("test", new store(){Output=""}); }
@{ Html.RenderPartial("test", new store(){Output2=""}); }


public class store
    {
        public string Output { get; set; }
        public string Output2 { get; set; }
    }

部分'测试'必须更改输出属性。它是否可能是uberhaupt,如果是,如何做到这一点? renderpartial包含一个javascript来计算属性的值。

2 个答案:

答案 0 :(得分:0)

@store st = new store(){Output="", Output2=""};
@{ Html.RenderPartial("test", new RouteValueDictionary {{"output", st.Output}, {"output2", st.Output2}}); }

答案 1 :(得分:0)

RenderPartial旨在获取父项或模型的一部分数据。 重载: http://msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial(v=vs.108).aspx 告诉你对象不是自定义对象,而是模型的一部分,来自Model.Customers

将所需的值从模型传递给partial,让partial创建它自己的对象。

如果你真的想将它传递给partial,那么为你的父视图创建一个新的视图模型,并在viewmodel中设置Output属性并将其传递给partial。

另请注意,partial获取了自己的数据副本,无法更新父项副本,因此可能会失败您真正想要的内容。

如果您需要其他一些计算数据,请在控制器中将其传递给视图,如果可能的话。