Asp.net Представление рендеринга MVC 2 на основе выпадающего списка

#asp.net-mvc

#asp.net-mvc

Вопрос:

Все,

У меня есть следующая модель:

 public class StateTaxes
{

    public StateTaxes()
    {

    }
public int StateCode{get;set;}
public IList<BlendStateTaxRate> BlendStateTaxes{get;set;}

}

public class BlendStateTaxRate
{
public string BlendName{get;set;}
public int StateCode{get;set;}

public int BlendCode{get;set;}
public decimal TaxRate{get;set;}
}
  

Мое представление состоит из выпадающего списка, который содержит состояния. Начальная запись в выпадающем списке — Выбрать состояние -, так что, когда пользователь переходит к /StateTaxes. Пользователь получает раскрывающийся список и заголовки столбцов для моих налогов. Я использую событие изменения jQuery для извлечения налогов, связанных с состоянием, когда пользователь выбирает допустимое состояние.

Мой вопрос заключается в том, каков наилучший способ заполнить представление по умолчанию, которое содержит только заголовки столбцов, а не конечный HTML. Я предполагаю, что реальная суть проблемы заключается в том, что представление не предлагает создавать только просмотр или редактировать.

Представление показано ниже:

  <select id="StateList">
        <option>--Select a State--</option>
    </select>
    <% Html.EnableClientValidation(); %>
    <% using (Html.BeginForm())
       { %>
    <fieldset>
        <legend>State Taxes</legend>
        <table>
            <thead>
                <tr>
                    <th>
                        Blend Type
                    </th>
                    <th>
                        Tax Rate
                    </th>
                    <th>
                        Discount Rate
                    </th>
                    <th>
                        ExportFee Rate
                    </th>
                    <th>
                        Inspection Rate
                    </th>
                    <th>
                        PollTax Rate
                    </th>
                    <th>
                        TrustFund Rate
                    </th>
                </tr>
            </thead>



<% for (int i = 0; i < Model.BlendStateTaxes.Count; i  )
               { %>
            <tr>
                <td>
                    <%= Html.DisplayFor(m => m.BlendStateTaxes[i].BlendName)%>
                </td>
                <td>
                    <%= Html.EditorFor(m => m.BlendStateTaxes[i].TaxRate, new  { disabled="true" })%>
                    <%=Html.ValidationMessageFor(m => m.BlendStateTaxes[i].TaxRate)%>
                    <%=Html.HiddenFor(m => m.BlendStateTaxes[i].BlendCode)%>

                </td>
                <td>
                    <%= Html.EditorFor(m => m.BlendStateTaxes[i].DiscountRate, new { disabled = "true" })%>
                    <%=Html.ValidationMessageFor(m => m.BlendStateTaxes[i].DiscountRate)%>
                    <%=Html.HiddenFor(m => m.BlendStateTaxes[i].BlendCode)%>

                </td>
                <td>
                    <%= Html.EditorFor(m => m.BlendStateTaxes[i].ExportFeeRate, new { disabled = "true" })%>
                    <%=Html.ValidationMessageFor(m => m.BlendStateTaxes[i].ExportFeeRate)%>
                    <%=Html.HiddenFor(m => m.BlendStateTaxes[i].BlendCode)%>
                </td>
                <td>
                    <%= Html.EditorFor(m => m.BlendStateTaxes[i].InspectionRate, new { disabled = "true" })%>
                    <%=Html.ValidationMessageFor(m => m.BlendStateTaxes[i].InspectionRate)%>
                    <%=Html.HiddenFor(m => m.BlendStateTaxes[i].BlendCode)%>
                </td>
                <td>
                    <%= Html.EditorFor(m => m.BlendStateTaxes[i].PollTaxRate, new { disabled = "true" })%>
                    <%=Html.ValidationMessageFor(m => m.BlendStateTaxes[i].PollTaxRate)%>
                    <%=Html.HiddenFor(m => m.BlendStateTaxes[i].BlendCode)%>
                </td>
                <td>
                    <%= Html.EditorFor(m => m.BlendStateTaxes[i].TrustFundRate, new { disabled = "true" })%>
                    <%=Html.ValidationMessageFor(m => m.BlendStateTaxes[i].TrustFundRate)%>
                    <%=Html.HiddenFor(m => m.BlendStateTaxes[i].BlendCode)%>
                </td>
            </tr>
            <%} %>
            </div>
        </table>
    </fieldset>

    <input id="saveStateTaxes" type="submit" value="Save" />
  

Ответ №1:

Я думаю, что все, что вы сделали, правильно в соответствии с вашими требованиями, за исключением нежелательного закрывающего тега div перед тегом закрытия таблицы.

Если вы можете написать ajax-сервис для извлечения записей, я бы рекомендовал вам использовать шаблоны на стороне клиента для привязки таблицы. Таким образом, у вас есть полный контроль над представлением, а также это улучшит производительность страницы.