Вы не показываете свои маршруты, но вы почти наверняка выберете разные маршруты в этом примере. Аргумент к вашему действию должен быть назван так же, как токен в маршруте, чтобы сгенерированный URL соответствовал токену маршрута с лямбда-формой ActionLink. Все, что не соответствует токену маршрутизации, будет добавлено в качестве параметра строки запроса, как со вторым URL. Просмотр параметра строки запроса является убедительным доказательством того, что имя, которое вы передали неявно (в данном случае «свойство»), не соответствует токену маршрута. Поскольку вы получаете разные результаты с одним и тем же именем токена, я тем самым заключаю, что вы выбираете разные маршруты. Кстати, я рекомендую создавать ссылки с RouteLink вместо ActionLink, чтобы вы могли быть уверены, какой маршрут вам подходит.

даю количество действий в контроллерах MVC.

public ActionResult DoSmth1(string token)
public ActionResult DoAnother2(string token)

И когда мне нужно позвонить в ActionLink ..

=Html.ActionLink<SomeController>( x=> x.DoSmth(item.property), item.property)
=Html.ActionLink<AnotherController>( x=> x.DoAnother(item.property), item.property)

... он генерирует мне разные URL:

/Some/DoSmth/stringvalue
/Another/DoAnother?property=stringvalue

Где установить способ построения URL? У меня вообще нет идей ... ((

Хорошо, есть некоторый путевой свет: - если имена свойств те же, что используются в схеме маршрутизации - например, controller, action и id - MVC будетвсегда используйте построитель маршрутов (/ c / a / id).

Это немного помогает (так -Назовите параметр "id" как можно))

Но общая проблема остается в силе ...

должен быть назван так же, как токен в маршруте

Точно - у меня сначала была эта идея.

Но - теперь у меня есть только маршрут по умолчанию ({controller} / {action} / {id}), но все еще есть URL со словом «property» в слешах ... Это довольно странно.

есть также более хитрый способ - создать точный маршрут, который сопоставит данный контроллер с именами его параметров - кажется, что это будет окончательный ответ - но я все еще не хочу этого делать ((

Ответы на вопрос(1)

Ваш ответ на вопрос