Преобразование кода MVC2 в Razor - PullRequest
0 голосов
/ 18 декабря 2010

Я использую чей-то код для подкачки.Его код в MVC 2, и я хочу его в MVC3 Razor.Проблема с синтаксисом.

Ниже приведен код в mvc. Нужно, чтобы кто-нибудь исправил синтаксис бритвы.

Проблема в этой строке

IList<Customer> customers = (IList<Customer>)Model.Data;

// Не могу использовать Model.Data напрямую.Не подбирает универсальный тип.

IList<Customer> customers = (IList<Customer>)Model.Data;
  foreach (Customer item in customers) { %>
<tr onclick="onRowClick(<%= item.ID %>)">
  <td>
    <%= Html.ActionLink("Edit", "Edit", new { id=item.ID}) %> |
    <%= Html.ActionLink("Delete", "Delete", new { id=item.ID })%>
  </td>

  <td>
    <%= Html.Encode(item.ID) %>
  </td>

  <td>
    <%= Html.Encode(item.FirstName) %>
  </td>
</tr>
<% } %>

1 Ответ

2 голосов
/ 18 декабря 2010

Строка может быть переведена так:

@ {
    IList<Customer> customers = (IList<Customer>)Model.Data;
}

и затем:

@foreach (Customer item in customers) {
    <tr onclick="onRowClick(@item.ID)">
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.ID })
            @:|
            @Html.ActionLink("Delete", "Delete", new { id = item.ID })
        </td>

        <td>
            @item.ID
        </td>

        <td>
            @item.FirstName
        </td>
    </tr>
}

Я бы также воспользовался этой миграцией, чтобы улучшить этот код. В настоящее время вы используете циклы в ваших представлениях, которые некрасивы и могут быть заменены шаблонами отображения.

Итак, на вашем главном экране:

@Html.DisplayFor(x => x.Data)

и ~/Views/Home/DisplayTemplates/Customer.cshtml:

@model YourApp.Models.Customer
<tr onclick="onRowClick(@Model.ID)">
    <td>
        @Html.ActionLink("Edit", "Edit", new { id = Model.ID })
        @:|
        @Html.ActionLink("Delete", "Delete", new { id = Model.ID })
    </td>
    <td>
        @Model.ID
    </td>
    <td>
        @Model.FirstName
    </td>
</tr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...