Я довольно новичок в MVC и действительно пытаюсь привыкнуть к привязке модели. У меня есть простая модель, которую я создал в форме. Однако, когда я публикую эту форму, только значения текстового поля переносятся в контроллер. Мне также нужно поле описания, которое делается с помощью DisplayTextFor. Придется ли мне для этого создавать пользовательскую связку моделей? Я могу пойти коротким путем и просто сделать описание текстовым полем только для чтения без границ, чтобы оно выглядело как текст, но я хочу сделать это правильно. Вот мой код:
public class FullOrder
{
public List<FullOrderItem> OrderList { get; set; }
public string account { get; set; }
public string orderno { get; set; }
}
public class FullOrderItem
{
public int? ID { get; set; }
public int? OrderId { get; set; }
public string Description { get; set; }
public int Qty { get; set; }
public decimal? Price { get; set; }
}
Вот представление
<table class="ExceptionAltRow">
<tr style="background-color: #DDD;">
<td class="strong" style="width:500px;">
Description
</td>
<td class="strong" style="width:100px;">
Qty
</td>
<td class="strong" style="width:100px;">
Previous Purchases
</td>
</tr>
@for (int i = 0; i < Model.FullOrder.OrderList.Count(); i++)
{
<tr>
<td>
@Html.DisplayTextFor(m => m.FullOrder.OrderList[i].Description)
</td>
<td>
@Html.TextBoxFor(m => m.FullOrder.OrderList[i].Qty, new { @style = "width:50px;" })
</td>
</tr>
}
</table>
Вот контроллер:
[HttpPost]
public ActionResult AddItem(FullOrder f)
{
//doesn't work description is not passed but qty is
}
Есть ли способ заставить мою модель просто передавать описание поста, даже если это не текстовое поле для связанного элемента из моей модели?