Что такое правильный MVC 2-страничный навигационный протокол в данном случае - PullRequest
0 голосов
/ 28 июня 2011

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

На вопрос ... Я рендеринг данных, которые я получаю из строки XML в представления в формате сетки. Я хочу иметь возможность перейти на другую страницу, нажав на ссылку в этой строке. Эта ссылка приведет меня к другому более подробному представлению представленных данных. Я буду использовать некоторые данные, отображаемые в ссылке, для запроса моего xml (через LINQ to XML) и получу соответствующие строки для отображения на следующей странице (просмотр). У меня вопрос, как бы я сделал это в MVC? В vanilla asp.net я просто поместил бы эту информацию в строку запроса или в другую простую переменную управления состоянием. Я немного запутался, как это сделать с помощью MVC2?
Вот код того, что у меня в данный момент есть

     <% foreach (var item in Model) { %>

    <tr>
        <td>                
            <%: Html.ActionLink("View Detailed Patient Info", "TemplateInfo", "PatientACO", new {  PopulationPatientID=item.PopulationPatientID } )%> |                
        </td>
        <td>
            <%: item.populationID %>
        </td>
        <td>
            <%: item.PopulationPatientID%>
        </td>
        <td>
            <%: item.populationOwner %>
        </td>
        <td>
            Table Column3
        </td>
    </tr>

<% } %>

Этот код на мой взгляд, и я хочу отправить этот PopulationPatientID контроллеру, который затем использует его для запроса моего XML. Есть ли перегрузка для HTML.ActionLink (), которую я могу использовать, которая поможет мне с этим вообще? Я упоминал, что для ActionLink, к которому я пытаюсь перейти, требуется строковый параметр? Любая помощь или идеи будут фантастическими. Я продолжу свое исследование, и если я найду стандартный для этого способ, я опубликую ответ.

Спасибо.

1 Ответ

0 голосов
/ 28 июня 2011

Вы не упоминаете свои настройки маршрутизации, но если вы все еще используете значения по умолчанию ...

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

Вы указали действие (TemplateInfo) и контроллер (PatientACO), но изменили имяпараметра id для PopulationPatientID.Помните, что имя параметра важно в MVC (соглашение против конфигурации).Поэтому измените свой вызов ActionLink () на:

    <%: Html.ActionLink("View Detailed Patient Info", "TemplateInfo", "PatientACO", new {  id=item.PopulationPatientID } )%> |                
...