У меня есть два маршрута, объявленные в моем маршруте конфигурации, как это:Использовать определенный маршрут с Url.Action
routes.MapRoute(
name: "SpecificAction",
url: "{controller}/{action}/{id}-{id2}",
defaults: new { controller = "Main", action = "SpecificAction", id = UrlParameter.Optional, id2 = UrlParameter.Optional }
);
routes.MapRoute(
name: "DefaultNoParams",
url: "{controller}/{action}/",
defaults: new { controller = "Main", Action = "Index" },
namespaces: new string[1] { "Project.Controllers" }
);
у меня есть два действия контроллера, которые выглядят следующим образом:
[HttpGet]
public ActionResult TheAction()
{
}
[HttpPost]
public ActionResult TheAction([ModelBinder(typeof(SpecificModelBinder))] SpecificModel model)
{
}
Я хочу ссылка на первый из этих действий, на мой взгляд, поэтому я генерировать один с помощью Url.Action
:
<a href="@Url.Action("TheAction", "Main")">The Action</a>
Однако, это выводит URL-адрес http://site/Main/TheAction/-
(обратите внимание на тире в конце, что указывает на то, что мой маршрут SpecificAction
используется.
Есть ли способ позвонить по номеру Url.Action
по определенному маршруту? Или есть ли другой способ избежать этой черты, появляющейся в URL-адресе?
Таблица маршрутизации не влияет на то, как «Url.Action» отображает URL-адрес ... Таким образом, ваша ссылка отображается как «'? –
@ChrisHardie Yes, I just want to avoid that. – Mansfield
Odd... What is rendered when you add this to your View: 'The Action» –