2010-07-27 5 views
0

Я пытаюсь передать параметр строки в ASCX. Я хочу установить это в свойство text метки. В приведенном ниже коде показано betwen тегов div (игнорируйте знаки% в тегах html).Передача параметров пользовательскому управлению ASCX в MVC

<@ 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> 

Однако в теге этикетки независимо от того, что я ставлю между угловыми скобками (немного жирным шрифтом) в тексте тега я не могу получить параметр появляться. Я пробовал <%: Модель%> безрезультатно. Является ли проблема, что блок кода находится внутри кавычек, и я просто пропускаю какой-то символ?

+0

Удалите asp: label из вашего кода View, потому что элементы управления ASP.NET Webforms идут вместе с ASP.NET MVC. Затем выполните шаги s1mm0t. – mare

ответ

1

Почему вы пытаетесь использовать пользовательский контроль веб-форм с помощью MVC?

Предполагая, что модель является строкой, которую вы хотите отобразить, и вы передаете это через правильно, вдоль линий

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

В вашей странице «родительской», вы сможете сделать следующее в вашем ASCX:

<%= Html.Label(Model) %> 

Вместо <asp:label...

Update

Если вам нужно указать, что у вас есть несколько параметров, вы можете обернуть вызов Html.Label в div и указать класс div (соответственно обновить ваш css), вы можете использовать шаблон отображения или просто явно использовать Html как следующее:

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

Основная проблема с кодом (как теперь указано в комментариях по @mare) является то, что вы пытаетесь использовать веб-формы управления в целях MVC ,

+0

Спасибо, но мне нужно указать класс css и Html.Label, похоже, не предлагает этого –

+0

См. Обновление, чтобы узнать, как указать класс css – s1mm0t

Смежные вопросы