0

我在我的任务中取得了进展,但遇到了一个小症结。当我研究它时,我想我会在这个论坛上问这个问题,所以如果其他人遇到类似的问题,他们可以依靠我们在这里提供的奖学金。

关于这个问题......我将从 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 需要一个字符串参数?任何帮助或想法都会很棒。我将继续我的研究,如果我遇到行业标准的做法,我会发布答案。

谢谢。

4

1 回答 1

0

您没有提及您的路由设置,但如果您仍在使用默认设置...

    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 } )%> |                
于 2011-06-28T18:06:22.077 回答