[英]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.