【问题标题】:What is Proper MVC 2 Page Navigation Protocol in this instance在这种情况下,什么是正确的 MVC 2 页面导航协议
【发布时间】:2011-06-28 14:55:36
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: asp.net-mvc-2 navigation html.actionlink


    【解决方案1】:

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

        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 } )%> |                
    

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多