Создание ActionLink в MVC View - PullRequest
0 голосов
/ 15 марта 2019

Я довольно новичок в MVC, поэтому прошу прощения за возможно неправильное использование терминологии.

В файле RouteConfig.cs моего приложения MVC есть следующие маршруты. КартаRoute: -

  routes.MapRoute(
     name: "Default",
     url: "{controller}/{action}/{id}",
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
   );

Ключевая строка: -

url: "{controller}/{action}/{id}"

Итак, я последовал примеру создания ActionLinks, которые были созданы в моем шаблоне приложения по умолчанию, и собрал воедино эту строку: -

<p>@Html.ActionLink("portfolio details", "Detail", "Portfolio", new { portfolioId = portfolio.PortfolioId } , new { @class = "btn btn-default" })</p>

Однако, это дает мне URL: -

http://localhost:xxxxx/Portfolio/Detail?portfolioId=174198

Если я не хочу, чтобы идентификатор был в параметре QueryString, как мне создать ссылку, соответствующую шаблону, который ожидается в маршрутах. MapRoute, чтобы получить ссылку URL, такую ​​как: -?

http://localhost:xxxxx/Portfolio/Detail/174198

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Вы можете использовать этот способ

<p>@Html.ActionLink("portfolio details", string.Format("Detail/{0}", portfolio.PortfolioId ), "Portfolio", null, null)</p>
0 голосов
/ 15 марта 2019

Если у вашего действия контроллера есть параметр id, то вы можете сделать:

<p>@Html.ActionLink("portfolio details", "Detail", "Portfolio", new { id = portfolio.PortfolioId } , new { @class = "btn btn-default" })</p>

Это должно дать вам:

http://localhost:xxxxx/Portfolio/Detail/174198

Это передаст 174198 вдействие контроллера как параметр id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...