これは私の最初のプログラムであり、コードを完成させる方法がよくわかりません。サプライヤに複数の在庫タイプがある新しいトランザクションを作成しようとしています。Partial View を使用してインベントリ タイプをリストに追加する方法がわかりません。コードを構成する方法についてのガイダンスは大歓迎です。ここに私のコードがあります:
ビューモデル:
public class InventoryTransactionParent
{
[Key]
public int InventoryTransactionID { get; set; }
[ForeignKey("InventoryTransactionType")]
[Display(Name = "Transaction Type")]
public int InventoryTransactionTypeID { get; set; }
public virtual InventoryTransactionType InventoryTransactionType { get; set; }
[Display(Name = "Supplier")]
[ForeignKey("Supplier")]
public int? SupplierID { get; set; }
public virtual Supplier Supplier { get; set; }
[Display(Name = "Transaction Date (From previous month only)")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime InventoryTransactionDate { get; set; }
[Display(Name = "Receipt/Invoice No.")]
public string InventoryTransactionReceipt { get; set; }
[Display(Name = "Transaction By")]
public string InventoryTransactionBy { get; set; }
[Display(Name = "Created On")]
public DateTime InventoryTransactionCreatedDateTime { get; set; }
[Display(Name = "Created By")]
public string InventoryTransactionCreatedBy { get; set; }
public bool InventoryTransactionCancelled { get; set; }
public int? InventoryTransactionCancelledSourceID { get; set; }
public List<InventoryTypeChild> InventoryTypeChilds { get; set; }
}
public class InventoryTypeChild
{
[ForeignKey("InventoryType")]
[Display(Name = "Inventory Type")]
public int InventoryTypeID { get; set; }
public virtual InventoryType InventoryType { get; set; }
[Display(Name = "Quantity")]
public decimal InventoryTransactionQuantity { get; set; }
[Display(Name = "Price per Item")]
public decimal InventoryTransactionPrice { get; set; }
[Display(Name = "Remarks (1000 characters)")]
[DataType(DataType.MultilineText)]
public string InventoryTransactionRemarks { get; set; }
}
意見:
@model Inventory.ViewModels.InventoryTransactionParent
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>In Transaction</legend>
<div class="editor-label">
@Html.LabelFor(model => model.SupplierID, "Supplier")
</div>
<div class="editor-field">
@Html.DropDownList("SupplierID", String.Empty)
@Html.ValidationMessageFor(model => model.SupplierID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.InventoryTransactionDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.InventoryTransactionDate, "TransactionDate")
</div>
<div class="editor-label">
@Html.LabelFor(model => model.InventoryTransactionReceipt)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.InventoryTransactionReceipt)
@Html.ValidationMessageFor(model => model.InventoryTransactionReceipt)
</div>
<div id="inventorytypes">
@using (Html.BeginForm()) {
<table>
<tr>
<td>@Html.LabelFor(model => Model.InventoryTypeChilds[0].InventoryTypeID)</td>
<td>@Html.LabelFor(model => Model.InventoryTypeChilds[0].InventoryTransactionPrice)</td>
<td>@Html.LabelFor(model => Model.InventoryTypeChilds[0].InventoryTransactionQuantity)</td>
<td>@Html.LabelFor(model => Model.InventoryTypeChilds[0].InventoryTransactionRemarks)</td>
<td></td>
</tr>
@{
if (Model.InventoryTypeChilds != null)
{
for (int i = 0; i < Model.InventoryTypeChilds.Count(); i++)
{
<tr>
<td>
@Html.DropDownList("InventoryTypeID", String.Empty)
@Html.ValidationMessageFor(model => model.InventoryTypeChilds[i].InventoryTypeID)
</td>
<td>
@Html.EditorFor(model => Model.InventoryTypeChilds[i].InventoryTransactionPrice)
@Html.ValidationMessageFor(model => Model.InventoryTypeChilds[i].InventoryTransactionPrice)
</td>
<td>
@Html.EditorFor(model => Model.InventoryTypeChilds[i].InventoryTransactionQuantity)
@Html.ValidationMessageFor(model => Model.InventoryTypeChilds[i].InventoryTransactionQuantity)
</td>
<td>
@Html.EditorFor(model => Model.InventoryTypeChilds[i].InventoryTransactionRemarks)
@Html.ValidationMessageFor(model => Model.InventoryTypeChilds[i].InventoryTransactionRemarks)
</td>
<td>
<input type="submit" value="Add" />
</td>
</tr>
}
}
}
</table>
}
</div>
<p>
<input type="submit" value="In" />
</p>
</fieldset>
}
コントローラー(まだ非常にラフ):
public ActionResult InMultipleTransaction()
{
ViewBag.InventoryTypeID = new SelectList(db.InventoryTypes, "InventoryTypeID", "InventoryTypeName");
ViewBag.SupplierID = new SelectList(db.Suppliers, "SupplierID", "SupplierName");
InventoryTransactionParent itp = new InventoryTransactionParent();
itp.InventoryTypeChilds = new List<InventoryTypeChild>();
itp.InventoryTypeChilds.Add(new InventoryTypeChild()
{
});
return View(itp);
}