Hi,
我使用以下代码生成 URL:
UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
urlHelper.Action("Edit", "Ad");
如果我当前在 URL 上http://localhost:16055/Ad/Edit/87 http://localhost:16055/Ad/Edit/87Action 方法将返回:“/Ad/Edit/87”?
为什么?我认为 urlHelper.Action("Edit", "Ad") 在这个 satet 中不会包含任何参数?
此致
Edit 1:(路线)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Ad", action = "List", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"TreeEditing", // Route name
"{controller}/{action}/{name}/{id}", // URL with parameters
new { controller = "AdCategory", action = "Add", name = string.Empty, id = -1 }
);
我认为 urlHelper.Action("Edit", "Ad") 在这个 satet 中不会包含任何参数?
嗯,你想错了。所有 url 帮助程序都会自动包含原始请求中的所有参数。因此,如果存在 id 路由参数,则其值将被重用。
如果您不希望出现此行为,则必须显式设置这些参数的值:
var action = urlHelper.Action("Edit", "Ad", new { id = "" });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)