Dan*_*Dan 5 c# asp.net-mvc urlhelper
我正在使用UrlHelper生成一个URL,但是,当我调用方法Action(action,controller,route)时,我得到了ArgumentNullException.
UrlHelper urlHelper = new UrlHelper();
if (!string.IsNullOrEmpty(notificacao.NotAction))
{
NotRequestUrl = urlHelper.Action("myAction", "myController", HMTLHelperExtensions.convertStringToRouteValueDictionary(myparameters));
}
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个辅助函数,它为我创建了对象路由值(并且它正常工作).
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;
}
Run Code Online (Sandbox Code Playgroud)
最奇怪的是,它已经在控制器内部工作,但是,它不是在一个单独的类(如BusinessLayer/Facade)中工作.
没有参数是空值.
它一直在调用Task方法.
我也试着像上下文一样:
UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
Run Code Online (Sandbox Code Playgroud)
但它HttpContext.Current对我返回null.
你需要通过当前的RequestContext.否则,它无法为您生成适当的URL,因为它缺少上下文:
UrlHelper urlHelper = new UrlHelper(this.Request.RequestContext);
Run Code Online (Sandbox Code Playgroud)
默认(无参数)构造函数仅供单元测试(源)使用.
请参阅MSDN
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |