Я решил реализовать свой собственный UrlFactory, используя в своем коде непосредственно помощники ASP.NET (Html / Url), теперь у меня нет src, я опубликую их завтра.
Плюсы в этом: я могу легко отследить каждый URL-адрес и выполнить централизованное переписывание.
Пример использования:
@{
string myAjaxUrl = UrlFactory.GetUrl (ActionName, ControllerName, new { query-params });
}
Затем, используя их в javascript с
var jsUrl = '@myAjaxUrl';
После того, как вы определили свою собственную Фабрику, вы можете перехватить «важные» URL-адреса (например, для перезаписи) и оставить общий для реализации помощника Url.
Однако для того, чтобы иметь эту полностью клиентскую сторону, существует дополнительный шаг рендеринга контекста маршрутизации Js для доступа к переменным на стороне клиента.
РЕДАКТИРОВАТЬ: Как и обещал мой очень простой конструктор класса Url:
public static class UrlFactory
{
public static string GetUrl(string Action, string Controller, object RouteValues)
{
UrlHelper Url = new UrlHelper(HttpContext.Current.Request.RequestContext);
return Url.Action(Action, Controller, RouteValues);
}
// Common URLS for Denied et similars.
public static string GetDeniedUrl(PEDUtenti Utente, object RouteValues)
{
return GetUrl(Utente, "Denied", "Errors", RouteValues);
}
public static string GetDeniedUrl(object RouteValues)
{
return GetUrl("Denied", "Errors", RouteValues);
}
}