将参数传递给MVC中的ASCX用户控件

时间:2010-07-27 17:26:18

标签: asp.net-mvc

我正在尝试将字符串参数传递给ASCX。我想将其设置为标签的text属性。在下面的代码中,它显示了div标签(忽略html标签中的%符号)。

<@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" >  
<%asp:Label ID="Label2" runat="server" **Text="<%# Model %> Test"** CssClass="isslabel"><%/asp:Label>  
<%div><%: Model %><%/div>   

然而,在标签标签中,无论我放在文本标签中的尖括号(粗体位)之间,我都无法显示参数。我试过&lt;%:Model%&gt;无济于事。是代码块在引号内的问题,我是否只是缺少一些字符?

1 个答案:

答案 0 :(得分:1)

为什么要尝试使用MVC的Web表单用户控件?

假设模型是您要显示的字符串,并且您正确地传递了这个字符串

<% Html.RenderPartial("MyUserControlView", "My String To Display"); %>

在“父”页面中,您可以在ascx中执行以下操作:

<%= Html.Label(Model) %>

而不是<asp:label...

<强>更新

如果你需要指定那么你有很多选项,你可以在div中包装Html.Label调用并指定div的类(相应地更新你的css),你可以使用显示模板,或者只是显式使用Html,如下所示:

<label for="someIdThatICouldUseAnotherHtmlExtensionMethodToGet"><%: Model %></label>

您的代码的关键问题(现在也在@mare的评论中也指出)是您尝试在MVC视图中使用Web窗体控件。