UrlHelper.动作抛出ArgumentNullException



我正在使用UrlHelper来生成一个URL,但是,当我调用方法Action(Action, controller, route)时,我得到ArgumentNullException。

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

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

    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)中工作。

所有参数都不为空。

从Task方法调用。

我也试着得到这样的上下文:

UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);

但是它是HttpContext。

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

UrlHelper urlHelper = new UrlHelper(this.Request.RequestContext);

默认的(无参数的)构造函数仅用于单元测试(源代码)。

查看MSDN

相关内容

  • 没有找到相关文章

最新更新