0

给定以下 UrlHelper 扩展方法:

public static string AbsoluteAction(this UrlHelper url, string action, string controller, object routeValues)
{
    Uri requestUrl = url.RequestContext.HttpContext.Request.Url;

    string absoluteAction = 
            string.Format("{0}://{1}{2}",
            requestUrl.Scheme,
            requestUrl.Authority,
            url.Action(action, controller, routeValues));

    return absoluteAction;
}

我的对象(r​​outeValues)上有一个属性,它是一个 api 键。当我从 AbsoluteAction 取回值时,我期望http://www.mysite.com/controller/action?apikey=PassWord1234但我得到的是http://www.mysite.com?/controller/action/apikey=password1234 . 似乎是导致问题的 .NET UrlHelper Action 方法,但我看不到指定“保留我的原始大小写”的方法。

想法?

4

1 回答 1

2

不,Url.Action助手不会自动将值小写。

假设默认路由设置,以下调用:

string url = Url.Action("foo", "bar", new { apikey = "PassWord1234" });

生成:

/bar/foo?apikey=PassWord1234

也许您正在使用一些可能导致此行为的自定义路由,但开箱即用的 ASP.NET MVC 绝对不会这样做。

于 2013-05-31T10:49:03.387 回答