private static ClientModelValidationContext GetValidationContextWithNoController() { var serviceCollection = GetServiceCollection(); var serviceProvider = serviceCollection.BuildServiceProvider(); var routeCollection = GetRouteCollectionWithNoController(serviceProvider); var routeData = new RouteData { Routers = { routeCollection, }, }; var contextAccessor = GetContextAccessor(serviceProvider, routeData); var actionSelector = new Mock<IActionSelector>(MockBehavior.Strict); var urlHelper = new UrlHelper(contextAccessor, actionSelector.Object); serviceCollection.AddInstance<IUrlHelper>(urlHelper); serviceProvider = serviceCollection.BuildServiceProvider(); return new ClientModelValidationContext(_metadata, _metadataProvider, serviceProvider); }
private string GetAbsoluteUrl(string controllerName, string actionName) { IServiceProvider services = Context.RequestServices; var urlHelper = new UrlHelper( (IActionContextAccessor)services.GetService(typeof(IActionContextAccessor)), (IActionSelector)services.GetService(typeof(IActionSelector))); string url = urlHelper.Action(actionName, controllerName); string absoluteUrl = string.Empty; if (url != null) { HttpRequest request = Context.Request; absoluteUrl = request.Scheme + "://" + request.Host + url; } return absoluteUrl; }
private static ClientModelValidationContext GetValidationContextWithArea(string currentArea) { var serviceCollection = GetServiceCollection(); var serviceProvider = serviceCollection.BuildServiceProvider(); var routeCollection = GetRouteCollectionWithArea(serviceProvider); var routeData = new RouteData { Routers = { routeCollection, }, Values = { { "action", "Index" }, { "controller", "Home" }, }, }; if (!string.IsNullOrEmpty(currentArea)) { routeData.Values["area"] = currentArea; } var contextAccessor = GetContextAccessor(serviceProvider, routeData); var actionSelector = new Mock<IActionSelector>(MockBehavior.Strict); var urlHelper = new UrlHelper(contextAccessor, actionSelector.Object); serviceCollection.AddInstance<IUrlHelper>(urlHelper); serviceProvider = serviceCollection.BuildServiceProvider(); return new ClientModelValidationContext(_metadata, _metadataProvider, serviceProvider); }