带有绑定文本框的可枚举视图

时间:2016-08-30 20:37:59

标签: c# asp.net-mvc asp.net-mvc-4 razor ef-code-first

我有一个可枚举模型的视图。我正在尝试使用对象实例的值绑定文本框。这是我的观点。

@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的正确方法是什么,这样我就可以更新购物车中已更改的数量。

1 个答案:

答案 0 :(得分:0)

因此经过一些试验和错误,我发现问题是我使用了错误的HTML帮助程序重载。 @ Html.TextBox(“Quantity”,item.Quantity)是输出值的正确方法,对于名称,对我有用的东西是@(item.Sku.Product.Name)。< / p>