Как передать данные из представления в UserControl в ASP.NET MVC?

Скажем, я хочу сделать простейшую передачу данных следующим образом:

<% For i = 0 To 10%>
    <%Html.RenderPartial("MyUserControl")%>
<% Next%>

Что я хочу сделать, так это передать переменную i в качестве параметра в UserControl, чтобы он отображал число внутри, скажем, граничного div.

Как это возможно?

Спасибо


person Jey Geethan    schedule 24.03.2010    source источник


Ответы (2)


<% For i = 0 To 10%> 
    <%Html.RenderPartial("MyUserControl", i)%> 
<% Next%>

Метод RenderPartial имеет перегрузку, позволяющую передавать (под)модель. Чтобы использовать его наиболее эффективно, ваш UserControl должен быть строго типизирован — в данном случае к модели типа System.Int32.


Чтобы использовать его в UserControl:

<%@ Control Language="C#"
    Inherits="System.Web.Mvc.ViewUserControl<System.Int32>" %>
<div><%= this.Html.Encode(this.Model) %></div>

В данном случае this.Model — это экземпляр System.Int32.

person Mark Seemann    schedule 24.03.2010
comment
Как бы я использовал его в UserControl? - person Jey Geethan; 24.03.2010

  • вы не. Этот материал должен быть в модели, предположительно.
  • Пожалуйста, обновитесь до MVC v2;) избавьтесь от строк.
person TomTom    schedule 24.03.2010
comment
По крайней мере, вы должны предоставить примеры того, как избавиться от строк. - person John Farrell; 24.03.2010