Попытка установить значение для ViewBag - PullRequest
1 голос
/ 15 декабря 2011

Может кто-нибудь сказать мне, почему это не работает?

Я получаю ошибку No overload for method 'Write' takes 0 arguments.Это происходит прямо в первой строке в foreach, где я устанавливаю ViewBag.InvoiceTotal.

@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>
}

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

У вас есть один дополнительный @

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

Это работает.

0 голосов
/ 15 декабря 2011
       @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>
            }
...