Если он установлен с помощью homebrew, попробуйте просто ввести mysql.server
в терминал, и это должно быть так. AFAIK его исполняемый файл будет находиться под /usr/local/bin/mysql.server.
Если вы не можете, вы всегда можете запустить следующую команду «locate mysql.server», которая сообщит вам, где найти такой файл.
Я разработал решение. Внутри MvcRouteHandler requestContext содержит значения для контроллера и экшена, на которых можно сделать простую замену.
Public Class HyphenatedRouteHandler
Inherits MvcRouteHandler
Protected Overrides Function GetHttpHandler(ByVal requestContext As System.Web.Routing.RequestContext) As System.Web.IHttpHandler
requestContext.RouteData.Values("controller") = requestContext.RouteData.Values("controller").ToString.Replace("-", "_")
requestContext.RouteData.Values("action") = requestContext.RouteData.Values("action").ToString.Replace("-", "_")
Return MyBase.GetHttpHandler(requestContext)
End Function
End Class
Тогда все, что вам нужно, это заменить route.MapRoute на эквивалентный routes.Add с указанием нового обработчика маршрутов. Это необходимо, так как MapRoute не позволяет указать пользовательский обработчик маршрута.
routes.Add(New Route("{controller}/{action}/{id}", New RouteValueDictionary(New With {.controller = "Home", .action = "Index", .id = ""}), New HyphenatedRouteHandler()))
В MVC 5.2.7 Вы можете просто specifiy использование атрибута
, ActionName
[ActionName("Import-Export")]
public ActionResult ImportExport()
{
return View();
}
Тогда называет представление
Импорт-Export.cshtml
, ссылка тогда была бы:
@Html.ActionLink("Import and Export", "Import-Export", "Services")
, Который имеет форму:
@Html.ActionLink("LinkName", "ActionName", "ControllerName")
Не знаю о пути, не написав карту для каждого URL-адреса:
routes.MapRoute("EditDetails", "test-page/edit-details/{id}", new { controller = "test_page", action = "edit_details" });
Версия John's Post на C # для всех, кто ее предпочитает: Версия C # и VB в моем блоге
public class HyphenatedRouteHandler : MvcRouteHandler{
protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
{
requestContext.RouteData.Values["controller"] = requestContext.RouteData.Values["controller"].ToString().Replace("-", "_");
requestContext.RouteData.Values["action"] = requestContext.RouteData.Values["action"].ToString().Replace("-", "_");
return base.GetHttpHandler(requestContext);
}
}
... и новый маршрут :
routes.Add(
new Route("{controller}/{action}/{id}",
new RouteValueDictionary(
new { controller = "Default", action = "Index", id = "" }),
new HyphenatedRouteHandler())
);
Вы также можете использовать следующий метод, но имейте в виду, что вам нужно будет назвать представление My-Action, что может раздражать, если вы хотите разрешить Visual Studio автоматически генерировать файлы представления.
[ActionName("My-Action")]
public ActionResult MyAction() {
return View();
}