I have some .net framework 4.5 code that I'd like to transpose to .net core :
[DataContract]
public class RouteData
{
public RouteData()
{
Request = new RequestRouteData();
}
[DataMember] public RequestRouteData Request { get; set; }
}
public class RequestRouteData : BaseRouteData
{
[DataMember]
public string AddUploadOtherFileStep5
{
get { return UrlHelper.Action("AddOtherFields", "Request"); }
}
}
public class BaseRouteData
{
protected UrlHelper UrlHelper { get; set; }
protected BaseRouteData()
{
UrlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
}
}
So, I found out that to get the current context I have to use IActionContextAccessor bu I'm struggling getting the equivalent methods to do so.
Here is what I tried so far :
[DataContract]
public class RouteData
{
public RouteData()
{
Request = new RequestRouteData();
}
[DataMember] public RequestRouteData Request { get; set; }
}
public class RequestRouteData : BaseRouteData()
{
[DataMember] public string AddOtherFields => UrlHelper.Action(What to put here?);
}
public class BaseRouteData
{
protected UrlHelper UrlHelper { get; }
protected BaseRouteData(IActionContextAccessor actionContext, IUrlHelperFactory urlHelperFactory)
{
UrlHelper = (UrlHelper) urlHelperFactory.GetUrlHelper(actionContext.ActionContext);
}
}
EDIT 3 :
public class JavascriptData
{
public JavascriptData()
{
Routes = new RouteData();
}
[DataMember] public RouteData Routes { get; set; }
#region ScriptFactory
public static string ScriptFactory()
{
var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var script = new StringBuilder();
JavascriptData appData = new JavascriptData();
var text = JsonConvert.SerializeObject(appData, Formatting.Indented, serializerSettings);
script.AppendFormat("var appData={0}", text);
return script.ToString();
}
#endregion
}
Am I heading right? Because I don't know what to do with the UrlHelper.Action() method to get the same result as in .net 4.5...

Almost. You need to inject
IUrlHelperFactoryas well. Then: