При использовании TagHelpers с MVC Core (2.1) можно определить asp-all-route-data
и дополнительный asp-route-x
. Но если x уже содержится внутри объекта, переданного всем данным маршрута, генерируется исключение:
An element with the key 'x' already exists in the RouteValueDictionary
Можно ли изменить это поведение (расширить TagHelper, пользовательский TagHelper и т. Д.), Чтобы просто обновить значение в этом случае вместо попытки создания новой записи.
Итак, это:
if(RouteValueDictionary.HasKey(x))
RouteValueDictionary[x] = value;
вместо (вероятно, что-то вроде) этого:
RouteValueDictionary.Add(x, value);
(В основном, если в моем коде нет необходимости даже в таком назначении)
Редактировать (возможно, для объяснения варианта использования): существует объект со всеми параметрами запроса для формы, но есть также ссылки, которые должны в основном отправлять те же данные и изменять значение. Отправка формы будет работать только при использовании javascript с кликом для каждой ссылки, настройке скрытого ввода и отправке формы. Но я бы предпочел не использовать JS для этого, так как такие функции, как «средний щелчок по новой вкладке», будут потеряны.