actionlink не разрешает URL, связанные с маршрутом - PullRequest
1 голос
/ 06 июля 2010

У меня есть следующий маршрут (это первый в моем global.asax)

    routes.MapRoute(
    "AdminCompany",                                              // Route name
    "{controller}.aspx/{action}/{companyId}/{id}",                           // URL with parameters
     new { controller = "Home", action = "Index", companyId = "", id = "" }  // Parameter defaults
    );

если я перейду к

«Order / DisplayAdmin / 2/79000180» разрешается правильно

Однако, если я сделаю следующее

Html.ActionLink("View", "DisplayAdmin", new {companyId = Model.CompanyId, id = order.OrderNumber }, new { @class = "button add" })

отображается

/ Order.aspx / DisplayAdmin / 39068760? CompanyID = 0

, который также работает, но не так хорош :)

Вот мой метод управления

   public ActionResult DisplayAdmin(int companyId, [DefaultValue(0)]int id, [DefaultValue(0)] int orderItemStatusId)
        {
            var viewModel = DisplayAdminViewModel(companyId, id, _statusResponses);
            return View(viewModel);
        }

Я неправильно называю ActionLink? как мне получить красивые URL-адреса?

Ответы [ 2 ]

1 голос
/ 06 июля 2010

Единственное, что я могу думать о том, что происходит, это то, что он возвращается к маршруту по умолчанию, я скопировал копию вашего маршрута и html.ActionLink, и он отлично работает для меня, отображая его как "/Order.aspx/ DisplayAdmin / 39068760/45456 ", я повторил ту же ошибку, что и вы, если в ссылке на маршрут и действие имя не совпадает.

0 голосов
/ 09 июля 2010

Используйте перегрузку ActionLink с аргументом RouteValueDictionary.

Похоже, что вы в настоящее время используете перегрузку с аргументом "object", и она переходит на работоспособный, но не такой чистый URL-адрес.

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