私は列挙可能なモデルを持つビューを持っています。私はオブジェクトのインスタンスの値でテキストボックスをバインドしようとしています。ここに私の見解があります。バインドされたテキストボックスを含む列挙型ビュー
@model IEnumerable<SeniorProjectMVC.Models.Cart>
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h3>Your cart</h3>
@*<p>
@Html.ActionLink("Create New", "Create")
</p>*@
<div class="row">
<div class="large-2 columns">
<h4> @Html.DisplayNameFor(model => model.Quantity)</h4>
</div>
<div class="large-4 columns">
<h4>@Html.DisplayNameFor(model => model.Sku.Product.Name)</h4>
</div>
<div class="large-2 columns">
<h4>@Html.DisplayNameFor(model => model.Sku.Product.Price)</h4>
</div>
<div class="large-1 columns">
<h4>In stock</h4>
</div>
<div class="large-3 columns">
</div>
</div>
@foreach (var item in Model)
{
<div class="row">
<div class="large-2 columns">
@Html.TextBox(item.Quantity.ToString())
</div>
<div class="large-4 columns">
@Html.Display(item.Sku.Product.Name)
</div>
<div class="large-2 columns">
@(item.Sku.Product.Price.ToString("c"))
</div>
<div class="large-1 columns">
@(item.Sku.Quantity > 0 ? "In Stock" : "Out of stock")
</div>
<div class="large-3 columns">
@Html.ActionLink("Edit", "Edit", new { id = item.ID }, new { @class = "button primary" }) |
@Html.ActionLink("Details", "Details", new { id = item.ID }, new { @class = "button primary" }) |
@Html.ActionLink("Delete", "Delete", new { id = item.ID }, new { @class = "button primary" })
</div>
</div>
}
私はに実行したように見える問題は量がテキストボックスに移入しないことで、それが表示されない、製品の名前のように思えます。商品名に価値があることはわかっていますが、表示されていません。また、値が変更された場合にこのコレクションをポストバックしたい場合は、変更されたカート内の数量を更新できるように、すべてのテキストボックス値を対応するIDでポストバックする正しい方法は何ですか?
あなたはそれぞれの項目が 'Quantity'プロパティで有効な値を持っていると確信していますか? – Shyju
はい、写真を投稿できます。価格は正しく拘束されているようですが、数量はテキストボックスに入力されておらず、各製品の名前も表示されません。 – ddeamaral
dbContextから読み込むときに 'Include'を使う必要があるかもしれません。 – Shyju