Search code examples
c#asp.net-mvcvb.netuser-controlsviewusercontrol

How to pass data from view to UserControl in ASP.NET MVC?


Say I want to do the simplest of the data passing as follows :

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

What I want to do is to pass the variable i as the parameter to the UserControl so that it displays the number inside a, say, bordered div.

How is this possible?

Thanks


Solution

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

    The RenderPartial method has an overload that allows you to pass in a (sub)model. To use it most effectively, your UserControl should be strongly typed - in this case to a model of type System.Int32.


    To use it in a UserControl:

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

    In this case, this.Model is a System.Int32 instance.