我正在尝试将字符串参数传递给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;无济于事。是代码块在引号内的问题,我是否只是缺少一些字符?
答案 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窗体控件。