2017-02-02 11 views
0

Я прочитал многие сообщенные проблемы, связанные с этим, никто не разрешил проблему, с которой я сталкиваюсь.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, но я не могу найти что-нибудь, чтобы отразить данные модели будучи пассы, когда форма нагрузки.

Я в тупике.

+0

Удостоверьтесь, что вам нужно указать свои значения атрибуту 'name', прежде чем вы сможете использовать их через Request.Form []. Не уверен, что это работает со встроенным Html.LabelForModel. – Laurens

+0

Не думайте, что все. Первоначально я решал проблему с флажками. Я понял это, и Request.Form [] содержит эти данные. В этом примере я построил для разрешения проблемы с флажком, привязанной к сообщению. Но в моем приложении это не так. – Edmound

+0

Ваш генератор html, который не имеет отношения к вашей модели. Единственный вход, который генерирует ваш генератор, имеет 'name =" Selected ", и это будет привязываться только к 'public ActionResult MySoftwareResults (bool [] selected)', который был бы бесполезен. См. [Этот ответ] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943), чтобы понять, как привязываться к коллекциям. И формы отправляют только пары имени/значения успешных элементов управления ('', '