コード例 #1
0
        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);
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }