2011-12-15 62 views
1

有人可以告訴我爲什麼這不起作用嗎?試圖設置ViewBag的值

我得到錯誤No overload for method 'Write' takes 0 arguments。這發生在我設置ViewBag.InvoiceTotal的foreach的第一行。

@foreach (var invoice in Model.Invoices) 
{ 
    @{ ViewBag.InvoiceTotal = (invoice.Product.Price * invoice.Quantity).ToString("c"); } 

    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => invoice.InvoiceDate) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => invoice.Company.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => invoice.Product.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => invoice.Quantity) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => invoice.Product.Price) 
     </td> 
     <td> 
      @ViewBag.InvoiceTotal 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", new { id = invoice.InvoiceId }) | 
      @Html.ActionLink("Details", "Details", new { id = invoice.InvoiceId }) | 
      @Html.ActionLink("Delete", "Delete", new { id = invoice.InvoiceId }) 
     </td> 
    </tr> 
} 

回答

1

你有一個額外的@

@foreach (var invoice in Model.Invoices) 
{ 
    { 
    ViewBag.InvoiceTotal = (invoice.Product.Price * invoice.Quantity).ToString("c"); 
    } 
} 

這工作。

+0

太棒了。謝謝! – 2011-12-15 13:25:40

0
 @foreach (var invoice in Model.Invoices) 
      { 
       ViewBag.InvoiceTotal = (invoice.Product.Price * invoice.Quantity).ToString("c"); 

       <tr> 
        <td> 
         @Html.DisplayFor(modelItem => invoice.InvoiceDate) 
        </td> 
        <td> 
         @Html.DisplayFor(modelItem => invoice.Company.Name) 
        </td> 
        <td> 
         @Html.DisplayFor(modelItem => invoice.Product.Name) 
        </td> 
        <td> 
         @Html.DisplayFor(modelItem => invoice.Quantity) 
        </td> 
        <td> 
         @Html.DisplayFor(modelItem => invoice.Product.Price) 
        </td> 
        <td> 
         @ViewBag.InvoiceTotal 
        </td> 
        <td> 
         @Html.ActionLink("Edit", "Edit", new { id = invoice.InvoiceId }) | 
         @Html.ActionLink("Details", "Details", new { id = invoice.InvoiceId }) | 
         @Html.ActionLink("Delete", "Delete", new { id = invoice.InvoiceId }) 
        </td> 
       </tr> 
      }