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

C# 如何通过renderpartial将两个变量传递给控件?,c#,asp.net-mvc,asp.net-mvc-2,C#,Asp.net Mvc,Asp.net Mvc 2,下面的代码呈现了一个名为ExchangeRates.ascx的控件。我想向控件传递两个变量,currencyCode和toCurrencyCode,但我只知道如何传递一个。有人能帮忙吗 <% var currencyCode = Html.Encode(Model.Country.CurrencyCode); %> <% var toCurrencyCode = Html.Encode(Model.Country.toCurrencyCo

下面的代码呈现了一个名为ExchangeRates.ascx的控件。我想向控件传递两个变量,currencyCode和toCurrencyCode,但我只知道如何传递一个。有人能帮忙吗

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

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

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

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

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

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

        <% Html.RenderPartial("~/Views/Shared/ExchangeRates.ascx", currencyCode); %>
public class CurrencyCodesViewModel
{
    public string CurrencyCode { get; set; }
    public string ToCurrencyCode { get; set; }
}
然后将局部视图强键入此模型并传递其实例:

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

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

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

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

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

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

        <% Html.RenderPartial("~/Views/Shared/ExchangeRates.ascx", currencyCode); %>
public class CurrencyCodesViewModel
{
    public string CurrencyCode { get; set; }
    public string ToCurrencyCode { get; set; }
}
然后将局部视图强键入此模型并传递其实例:

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

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

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

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

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

您不能将同名对象而不是模型传递给强类型的vie?@Viacheslav,您完全正确。谢谢谢谢你指出这一点。我会更新我的答案。@Viach:可以,但它不会被输入,而且要想再次输出它需要很多工作。你不能将同名对象而不是模型传递给强类型的vie?@Viacheslav,你完全正确。谢谢谢谢你指出这一点。我会更新我的答案。@Viach:可以,但不会被键入,而且要再次将其输出需要大量的工作。您可以使用ViewData将任何附加数据传输到view中。在MVC 3中,您可以使用ViewBag dynamic object,这是ViewData下的包装,但更有用。您可以使用ViewData将任何附加数据传输到视图中。在MVC 3中,您可以使用ViewBag动态对象,这是ViewData下的包装,但更有用。
        <% var currencyCode = Html.Encode(Model.Country.CurrencyCode);  %>  

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

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