2011-01-30 41 views
1

我有下面的代码,它呈现一个名为ExchangeRates.ascx的控件。我想将两个变量传递给控件,​​currencyCode和toCurrencyCode,但我只知道如何传递一个变量。谁能帮忙?如何将两个变量通过renderpartial传递给控件?

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

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

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

您可以使用ViewData将任何其他数据传输到视图中。 – 2011-01-30 08:26:54

+0

在MVC 3中,您可以使用ViewBag动态对象,这是ViewData下的包装,但它更加实用。 – 2011-01-30 08:28:29

回答

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 
    } 
); %> 
0

这不是RenderPartial()的情况,而是RenderAction(),它返回一个局部视图。

相关问题