ドロップダウン ボックスにクライアントのリストを含めようとしています。このリストをフォーム (Html.BeginForm()) に含めて、選択した値を POST コントローラーに渡すことができるようにします。何かが足りないと思います。次のクラスがあります。
私の請求書ビューモデル:
public class InvoiceViewModel
{
public InvoiceViewModel()
{
// makes sure InvoiceItems is not null after construction
InvoiceItems = new List<PrelimInvoice>();
}
public List<PrelimInvoice> InvoiceItems { get; set; }
public List<Client> ClientId { get; set; }
public Client Client { get; set; }
public decimal InvoiceTotal { get; set; }
}
私のクライアントモデル:
public class Client
{
public string ClientId { get; set; }
public string Name { get; set; }
}
私の SaveInvoice メソッド:
public ActionResult SaveInvoice()
{
var invoice = new Invoice();
TryUpdateModel(invoice);
try
{
invoice.ClientId = User.Identity.Name;
invoice.DateCreated = DateTime.Now;
//Save invoice
proent.Invoices.Add(invoice);
proent.SaveChanges();
//Process the invoice
var preliminvoice = InvoiceLogic.GetInvoice(this.HttpContext);
preliminvoice.CreateInvoice(invoice);
return RedirectToAction("Complete", new { id = invoice.InvoiceId });
}
catch
{
//Invalid - redisplay with errors
return View(invoice);
}
}
そして、私の Index.cshtml は InvoiceViewModel クラスに強く型付けされています。Index.cshtml は、フォームを生成する場所です。
Html.DropDownList を作成するためのコードと、リストまたはクライアントの何かを含める必要があるかどうかはわかりません。他の場所にドロップダウンリストがありますが、ビューモデルではなくモデルに強く型付けされているため、混乱しています。
誰でも私を助けることができますか?