您好,
我使用以下代码生成网址:
UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);
urlHelper.Action("Edit", "Ad");
如果我当前在网址http://localhost:16055/Ad/Edit/87上,则操作方法将返回:“/ Ad / Edit / 87”?
为什么呢?我认为urlHelper.Action(“编辑”,“广告”)会不会包含任何参数?
BestRegards
编辑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 }
);
答案 0 :(得分:7)
我认为urlHelper.Action(“编辑”,“广告”)会在这个场景中不包含任何参数吗?
嗯,你错了。所有url助手都会自动包含原始请求中的所有参数。因此,如果您有一个id route参数,它的值将被重用。
如果您不想要这种行为,则必须明确设置这些参数的值:
var action = urlHelper.Action("Edit", "Ad", new { id = "" });