Строковый URL к RouteValueDictionary

Я вижу эту тему, но в моем случае я искал способ улучшить формат. Использование UFormat и добавление -1 дня

(get-date (get-date).addDays(-1) -UFormat "%Y%m%d-%H%M")
18
задан DaveRandom 25 February 2013 в 20:05
поделиться

2 ответа

Вот решение, которое не требует издевательства:

var request = new HttpRequest(null, "http://localhost:3333/Home/About", "testvalue=1");
var response = new HttpResponse(new StringWriter());
var httpContext = new HttpContext(request, response);
var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(httpContext));
var values = routeData.Values;
// The following should be true for initial version of mvc app.
values["controller"] == "Home"
values["action"] == "Index"

Надеюсь, это поможет.

36
ответ дан 30 November 2019 в 07:13
поделиться

You would need to create a mocked HttpContext as routes constrains requires it.

Here is an example that I use to unit test my routes (it was copied from Pro ASP.Net MVC framework):

        RouteCollection routeConfig = new RouteCollection();
        MvcApplication.RegisterRoutes(routeConfig);
        var mockHttpContext = new MockedHttpContext(url);
        RouteData routeData = routeConfig.GetRouteData(mockHttpContext.Object);
        // routeData.Values is an instance of RouteValueDictionary
        //...
3
ответ дан 30 November 2019 в 07:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: