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

Cun*_*ers 1 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); %>
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 6

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

public class CurrencyCodesViewModel
{
    public string CurrencyCode { get; set; }
    public string ToCurrencyCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

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

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