Необходимо прочитать Получить вашу базу данных под управлением версиями . Проверьте серию сообщений К. Скотта Аллена.
Когда дело доходит до контроля версий, база данных часто является гражданином второго или даже третьего сорта. Из того, что я видел, команды, которые никогда бы не подумали о написании кода без контроля версий через миллион лет - и это справедливо - могут каким-то образом совершенно не обращать внимания на необходимость контроля версий критически важных баз данных, на которые полагаются их приложения. Я не знаю, как вы можете называть себя инженером-программистом и вести себя открыто, когда ваша база данных находится не на том же строгом уровне контроля исходного кода, что и остальная часть вашего кода. Не позволяй этому случиться с тобой. Получите вашу базу данных под контролем версий.
Мое решение было следующее:
Вспомогательный метод HtmlExtension:
public static string RouteUrl(this UrlHelper urlHelper, string routeName, object routeValues, bool inheritRouteParams)
{
if (inheritRouteParams)
{
// call standard method
return urlHelper.RouteUrl(routeName, routeValues);
}
else
{
// replace urlhelper with a new one that has no inherited route data
urlHelper = new UrlHelper(new RequestContext(urlHelper.RequestContext.HttpContext, new RouteData()));
return urlHelper.RouteUrl(routeName, routeValues);
}
}
Теперь я могу сделать:
Url.RouteUrl('testimonials-route', new { }, false)
и точно знаю, что он всегда будет вести себя одинаково, независимо от контекста .
Это работает так: взять существующий UrlHelper
и создать новый с пустым «RouteData». Это означает, что наследовать не от чего (даже от нулевого значения).