как использовать @ Html.ActionLink, чтобы показать индексное представление с параметрами? - PullRequest
0 голосов
/ 22 июня 2019

Когда я использую @ActionLink с индексом ActionName, это ActionName не отображается в ссылке браузера.

@Html.ActionLink(linkText: "return", actionName: "Index", controllerName: "NewsImages"
, routeValues: new { selectedNewsid = 1 }, htmlAttributes: null)

Это действие показывает следующую ссылку в браузере: "http://localhost:23594/NewsImages/?selectedNewsid=1" но когда я использую другое ActionName, ссылка отображается правильно! Что я делаю неправильно? Это мой RouteConfig:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

Ответы [ 3 ]

1 голос
/ 22 июня 2019

Если вы указали имя действия или идентификатор в ActionLink, похожее на имя по умолчанию, поддерживаемое в маршрутах. MapRoute, то оно невидимо в URL и иногда создает проблемы.Если вы хотите использовать индекс в качестве имени действия, просто добавьте / перед индексом

@Html.ActionLink(linkText: "return", actionName: "/Index", controllerName: "NewsImages"
    , routeValues: new { SelectedNewsid = 1 }, htmlAttributes: null)

(PS: в демо я изменяю имя контроллера на Home)

DEMO

0 голосов
/ 22 июня 2019

Создать новый маршрут

routes.MapRoute( name: "NewsImages", url: "{controller}/{action}/{selectedNewsid}", defaults: new { controller = "NewsImages", action = "Index",selectedNewsid= UrlParameter.Optional }, namespaces: new[] { "GPTKish.Controllers" } );

тогда правильная ссылка будет: http://localhost:23594/NewsImages/1

Пожалуйста, настройте код, это шаблон для URL MVC.

0 голосов
/ 22 июня 2019

Ничего плохого в приведенном выше коде, пожалуйста, удалите "/" перед "?"с вашего URL и попробуйте с приведенной ниже ссылкой Пример: "http://localhost:23594/NewsImages?selectedNewsid=1"

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