Я прочитал многие сообщенные проблемы, связанные с этим, никто не разрешил проблему, с которой я сталкиваюсь.MVC POST не будет связывать модель ... Результат равен нулю
Модель:
public class MySoftwareResults
{
public Shopping_MachineInformation MachineInformation { get; set; }
public ShoppingUserInformation UserInformation { get; set; }
public List<Shopping_MySoftwareResults> ApplicationsList { get; set; }
public string Requester { get; set; }
public MySoftwareResults()
{
MachineInformation = new Shopping_MachineInformation();
UserInformation = new ShoppingUserInformation();
ApplicationsList = new List<Shopping_MySoftwareResults>();
Requester = "";
}
}
Форма:
@using (@Html.BeginForm("MySoftwareResults", "Client", FormMethod.Post))
{
<div class="form-group">
<table class="table table-responsive list-view">
<thead>
<tr>
<th>Software</th>
<th>Cost</th>
<th>Requires Approval</th>
<th>Status</th>
<th>Select</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ApplicationsList)
{
<tr>
<td>
@Html.LabelForModel(item.Software)
</td>
<td>@Html.LabelForModel(item.Cost)</td>
<td>
@Html.LabelForModel(item.RequiresApproval)
</td>
<td>@Html.LabelForModel(item.Status)</td>
<td>
<input type="checkbox" id="Selected" name="Selected" value="@item.CollectionID"/>
</td>
</tr>
}
</tbody>
</table>
</div>
<div class="form-group">
<input type="submit" title="SUBMIT" class="btn btn-primary pull-right" id="butSubmit" />
</div>
}
Форма заселяет отлично. Когда я нажимаю на Submit модель пуст:
[HttpPost]
public ActionResult MySoftwareResults(MySoftwareResults results)
{
var selected = axp.euc.sdsassistance.core.Queries.Shopping_ParseCheckedItems(Request.Form["Selected"]);...
}
Я попытался с помощью Fiddler, но я не могу найти что-нибудь, чтобы отразить данные модели будучи пассы, когда форма нагрузки.
Я в тупике.
Удостоверьтесь, что вам нужно указать свои значения атрибуту 'name', прежде чем вы сможете использовать их через Request.Form []. Не уверен, что это работает со встроенным Html.LabelForModel. – Laurens
Не думайте, что все. Первоначально я решал проблему с флажками. Я понял это, и Request.Form [] содержит эти данные. В этом примере я построил для разрешения проблемы с флажком, привязанной к сообщению. Но в моем приложении это не так. – Edmound
Ваш генератор html, который не имеет отношения к вашей модели. Единственный вход, который генерирует ваш генератор, имеет 'name =" Selected ", и это будет привязываться только к 'public ActionResult MySoftwareResults (bool [] selected)', который был бы бесполезен. См. [Этот ответ] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943), чтобы понять, как привязываться к коллекциям. И формы отправляют только пары имени/значения успешных элементов управления ('', '