Я недавно перенес свое приложение ASP.Net MVC 1 из VS.Net 2008 / C # 3,5 в VS.NET 2010 / C # 4,0 .
Я широко использовал конструктор для получения строк URL-адресов из строго типизированных вызовов.
Это выглядит так:
// sample call :
string toSamplePage = Url.To<SampleController>(c => c.Page(parameter1, parameter2));
код добавлен в качестве расширения по умолчанию UrlHelper :
public static string To<Tcontroller>(UrlHelper helper, Expression<Action<Tcontroller>> action) where Tcontroller : Controller
{
// based on Microsoft.Web.Mvc.dll LinkBuilder
return LinkBuilder.BuildUrlFromExpression<Tcontroller>(helper.RequestContext, helper.RouteCollection, action);
}
Единственная проблема в этом, это ссылка на Microsoft.Web.Mvc dll, но выигрыш в читаемости того стоил.
Проблема : больше не работает, возвращает (ноль) любые параметры.
Вопросы :
Есть ли лучший способ построить ссылки из выражения?
(да, я пытался гуглить безуспешно)
Есть ли хитрость, чтобы бывший LinkBuilder.BuildUrlFromExpression работал?
Я пытался перекомпилировать его в C # 4.0, но проблема в том, что он подразумевает работу над моей собственной скомпилированной версией System.Web.Mvc, которая не поддерживается.
В настоящее время я пытаюсь перейти на MVC 2, но у меня все еще есть проблемы ...
Жду ваших предложений ...