#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-сервис для извлечения записей, я бы рекомендовал вам использовать шаблоны на стороне клиента для привязки таблицы. Таким образом, у вас есть полный контроль над представлением, а также это улучшит производительность страницы.