Выберите список, не публикуя выбранную опцию на контроллере

У меня есть текущая модель списка счетов, которую я хочу привязать к списку выбора

public class InvoiceList
{
   public string InvoicerReference { get; set; }
   public Invoice SelectedInvoice{ get; set; }
   public List<Invoice> Invoices { get; set; }
}

А вот и выпадающий список

@using (Html.BeginForm("Invoice", "Billing", FormMethod.Post))
{
    @Html.DropDownListFor(m => m.SelectedInvoice, new SelectList(Model.Invoices, "invoiceReference", "InvoiceDisplay"))
    <input type="submit" id="btnSelectInvoice" />
}

Однако, когда я отправляю сообщение на мой контроллер, модель становится пустой

public ActionResult Invoice(InvoiceList invoiceReference)
{
    ....
    return View(invoiceList);
}

Кто-нибудь может увидеть, что я делаю неправильно?

1 ответ

Ваша проблема здесь:

public Invoice SelectedInvoice{ get; set; }
@Html.DropDownListFor(m => m.SelectedInvoice

Html.DropDownListFor ожидает, что первый параметр будет иметь тип value из вариантов.
Итак, если ваш invoiceReferenceявляется, например, int, вы бы сделали это:

public class InvoiceList
{
   public string InvoicerReference { get; set; }
   public int SelectedInvoice{ get; set; }
   public List<Invoice> Invoices { get; set; }
}
Другие вопросы по тегам