Передать параметр в пользовательский элемент управления в ASP.NET MVC? - PullRequest
1 голос
/ 27 января 2010

Я ищу способ передачи параметра в пользовательский элемент управления? Прямо сейчас у меня есть большой оператор if и дублирование кода в моем пользовательском контроле. Я хочу, чтобы цикл был внутри представления, и я хочу передать текущий индекс цикла пользовательскому элементу управления?

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

<%} %>

1 Ответ

1 голос
/ 27 января 2010

Вы можете передать любую модель вашему частичному виду. Ширина этой линии:

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

Вы передаете текущую модель страницы в частичное представление (вам не нужно явно делать это, поскольку текущая модель будет передана, если вы не передадите модель). Если вы хотите передать что-то еще, вы просто создаете для этого класс, создаете экземпляр объекта из этого класса, заполняете его любыми необходимыми данными и передаете его в частичное представление. Этот класс может содержать модель страницы, а также простое свойство с индексом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...