繁体   English   中英

ActionLink中的多个参数不能在MVC项目中根据需要进行渲染

[英]Multiple params in ActionLink not rendering as needed in MVC project

我有一个视图,它有多个部分视图。 这是一个设置页面。 他们可以点击左侧面板上的网站,广告会在页面的部分视图中显示管理该网站的所有设置。 当我构建网站的链接时,我使用以下Razor代码作为示例:

        List<Site> siteList = Site.GetSites(new SiteQuery());
        foreach (Site site in siteList)
        {
            <li>@Html.ActionLink(@site.Name, "SelectSite", "SettingsController", new { id = Model.EnvironmentID, siteId = @site.SiteID}, null)</li>
        }

这是我试图在SetitngsController控制器中击中的ActionResult:

        public ActionResult SelectSite(int id, int siteId)
        {    
            //..code here
        }

发生错误,因为我输出的URL如下:

〜/ SettingsController / SelectSite / 1?网站ID = 1

而不是〜/ SettingsController / SelectSite /?id = 1&siteId = 1344

我是否明白误解了如何能够使用新的URL更新页面上的当前视图并以这种方式添加params。 这在MVC理论中是错误的,还是我只是错过了什么? 提前致谢!

这是因为您的路由表。 默认情况下,它看起来像{Controller}\\{Action}\\{id} ,所以你的id param就在行动之后。

您可以更改参数名称或更改路由(但最后一个解决方案具有更高的复杂性),例如:

@Html.ActionLink(site.Name, 
                 "SelectSite", 
                 "SettingsController", 
                 new { environmentID = Model.EnvironmentID, siteId = site.SiteID}, null)

public ActionResult SelectSite(int environmentID, int siteId)
    {    
        //..code here
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM