UrlHelper.Action(“编辑”,“广告”)返回id参数?

时间:2012-02-27 20:45:48

标签: asp.net asp.net-mvc action

您好,

我使用以下代码生成网址:

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

1 个答案:

答案 0 :(得分:7)

  

我认为urlHelper.Action(“编辑”,“广告”)会在这个场景中不包含任何参数吗?

嗯,你错了。所有url助手都会自动包含原始请求中的所有参数。因此,如果您有一个id route参数,它的值将被重用。

如果您不想要这种行为,则必须明确设置这些参数的值:

var action = urlHelper.Action("Edit", "Ad", new { id = "" });