如何将两个变量通过renderpartial传递给控件?

时间:2011-01-30 08:09:23

标签: c# asp.net-mvc asp.net-mvc-2

我有以下代码,它呈现一个名为ExchangeRates.ascx的控件。我想将两个变量传递给control,currencyCode和toCurrencyCode,但我只知道如何传递一个。有人可以帮忙吗?

        <% var currencyCode = Html.Encode(Model.Country.CurrencyCode);  %>  

        <% var toCurrencyCode = Html.Encode(Model.Country.toCurrencyCode);  %> 

        <% Html.RenderPartial("~/Views/Shared/ExchangeRates.ascx", currencyCode); %>

2 个答案:

答案 0 :(得分:6)

您需要定义一个包含您感兴趣的两个属性的新模型:

public class CurrencyCodesViewModel
{
    public string CurrencyCode { get; set; }
    public string ToCurrencyCode { get; set; }
}

然后强烈键入您的局部视图到此模型并传递它的实例:

<% Html.RenderPartial(
    "~/Views/Shared/ExchangeRates.ascx", 
    new CurrencyCodesViewModel { 
        CurrencyCode = currencyCode, 
        ToCurrencyCode = toCurrencyCode
    }
); %>

答案 1 :(得分:0)

这不是RenderPartial()的情况,而是返回部分视图的RenderAction()