2016-08-30 69 views
0

我有一個可枚舉模型的視圖。我試圖將文本框與對象的實例的值綁定。這是我的觀點。綁定文本框的枚舉視圖

@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

您確定每個商品在'Quantity'屬性中都有一個有效值嗎? – Shyju

+0

是的,我可以張貼圖片。價格似乎被正確綁定,但數量沒有在文本框中填充,並且每個產品的名稱也沒有顯示出來。 – ddeamaral

+0

可能你需要在從dbContext中讀取時使用'Include'。 – Shyju

回答

0

因此,經過一些試驗和錯誤,我發現問題是我使用錯誤的HTML幫助器重載。 @ Html.TextBox(「Quantity」,item.Quantity)是輸出值的正確方法,至於名稱,對我來說工作的是執行此操作@(item.Sku.Product.Name)。

+0

要發佈收藏,您不能使用'foreach'循環。請參閱[這個答案](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)(和正確的用法爲您當前的實施,這將無法正常工作一直使用'Html.TextBoxFor(m => item.Quantity)' - 總是使用強類型的'HtmlHelper'方法) –

+0

因此,對於我目前的標記,沒有任何方法可以爲每個訂單項發佈我的數量和SKU ID在我的購物車到我的控制器? – ddeamaral

+0

不需要看看你生成的html - 你有沒有索引器的重複的'name'屬性需要綁定到一個集合(和重複的'id'屬性是無效的html) - 參考我以前的評論中的鏈接。 –