2010-01-27 5 views
1

Je cherche un moyen de passer un paramètre au contrôle de l'utilisateur? En ce moment j'ai une grosse instruction if et une duplication de code dans mon contrôle utilisateur. Je veux avoir la boucle dans la vue et je veux passer l'index courant de la boucle au contrôle d'utilisateur?Passez un paramètre au contrôle utilisateur dans ASP.NET MVC?

// current view 
Html.RenderPartial("DetailsRateForm", ViewData.Model); 

// ASP.NET MVC User control 

    <% else 
{%> 
<%=Html.Hidden(Resources.RSINET.RateDetailIndex, "0")%> 

<table class="prettyForm"> 
<thead> 
    <th colspan="2">Add Rate Details</th> 
</thead> 
<tr> 
    <td>Effective Date</td> 
    <td><%=Html.TextBox(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceEffectiveDate)%> <a href="javascript:NewCal('RateDetail[<%="0"%>].EffectiveDate','mmddyyyy')"><img src="../../Content/Images/cal.gif" width="16" height="16" border="0" alt="Pick a date"/></a></td> 
</tr> 
<tr> 
    <td>Expiration Date</td> 
    <td><%=Html.TextBox(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceExpirationDate)%> <a href="javascript:NewCal('RateDetail[<%="0"%>].ExpirationDate','mmddyyyy')"><img src="../../Content/Images/cal.gif" width="16" height="16" border="0" alt="Pick a date"/></a></td> 
</tr> 
<tr> 
    <td>Condition Type</td> 
    <td><%=Html.DropDownList(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceConditionType, ViewData.Model.CondT, "Choose Option")%></td> 
</tr> 
<tr> 
    <td>Condition Value</td><td><%=Html.TextBox(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceConditionValue)%></td> 
</tr> 
<tr> 
    <td>Rate</td><td><%=Html.TextBox(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceRate)%> </td> 
</tr> 
<tr> 
    <td>Unit</td><td><%=Html.DropDownList(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceUnit, ViewData.Model.Unit, "Choose Option")%></td> 
</tr> 
<tr> 
    <td>Status</td> 
    <td><%=Html.DropDownList(Resources.RSINET.RateDetailBrace + "0" + Resources.RSINET.BraceActiveItem, ViewData.Model.Active, "Choose Option")%></td> 
</tr> 

</table> 

<%} %> 

Répondre

1

Vous pouvez transmettre n'importe quel modèle à votre vue partielle. Largeur cette ligne:

Html.RenderPartial("DetailsRateForm", ViewData.Model); 

Vous passez le modèle actuel de la page à la vue partielle (vous n'êtes pas obligé de faire explicitement que le modèle actuel sera passé si vous ne passez pas un modèle). Si vous voulez passer autre chose, créez simplement une classe pour cela, instanciez un objet de cette classe, remplissez-le avec les données dont vous avez besoin et passez-le à la vue partielle. Cette classe peut contenir le modèle de la page ainsi qu'une propriété simple avec l'index.

Questions connexes