首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UrlHelper.Action抛出ArgumentNullException

UrlHelper.Action抛出ArgumentNullException
EN

Stack Overflow用户
提问于 2015-07-28 23:23:31
回答 1查看 1.5K关注 0票数 5

我使用UrlHelper来生成一个网址,然而,当我调用方法动作(动作,控制器,路由)时,我得到的是ArgumentNullException。

代码语言:javascript
复制
UrlHelper urlHelper = new UrlHelper();

if (!string.IsNullOrEmpty(notificacao.NotAction))
{ 
     NotRequestUrl = urlHelper.Action("myAction", "myController", HMTLHelperExtensions.convertStringToRouteValueDictionary(myparameters));
} 

我已经创建了一个帮助器函数,它为我创建对象路由值(它工作正常)。

代码语言:javascript
复制
    public static RouteValueDictionary convertStringToRouteValueDictionary(string parametros)
    {
        RouteValueDictionary dicionario = new RouteValueDictionary();
        foreach (string parametro in parametros.Split(';'))
            if (parametro.Split('=').Count() == 2)
                dicionario.Add(parametro.Split('=')[0], parametro.Split('=')[1]);
        return dicionario;
    }

最奇怪的是,它已经在控制器中工作了,然而,它不能在单独的类中工作(就像BusinessLayer/Facade)。

所有参数都不为nulls。

它是从Task方法调用的。

我还尝试获取上下文,如下所示:

代码语言:javascript
复制
UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

但是它的HttpContext.Current返回null给我。

EN

回答 1

Stack Overflow用户

发布于 2015-07-28 23:27:44

您需要传递当前的RequestContext。否则,它无法为您生成适当的urls,因为它缺少上下文:

代码语言:javascript
复制
UrlHelper urlHelper = new UrlHelper(this.Request.RequestContext);

默认(无参数)构造函数仅供单元测试使用(source)。

请参阅MSDN

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31680707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档