【发布时间】:2019-06-13 07:19:47
【问题描述】:
将 TagHelpers 与 MVC Core (2.1) 一起使用时,可以定义 asp-all-route-data 和附加的 asp-route-x。但是如果 x 已经包含在传递给 all-route-data 的对象中,则会引发异常:
An element with the key 'x' already exists in the RouteValueDictionary
是否可以更改此行为(扩展 TagHelper、自定义 TagHelper 等)以在这种情况下仅更新值而不是尝试创建新条目。
所以这个:
if(RouteValueDictionary.HasKey(x))
RouteValueDictionary[x] = value;
而不是(可能类似于)这个:
RouteValueDictionary.Add(x, value);
(基本上,我的代码中的 if 在这样的分配中甚至都不需要)
编辑(也许是为了解释用例):有一个包含表单所有查询参数的对象,但也有一些链接应该基本上发送相同的数据并更改一个值。只有在每个链接都使用带有 onclick 的 javascript、设置隐藏输入并提交表单时,才能提交表单。但我不希望为此使用 JS,因为“中键单击新标签”之类的功能将会丢失。
【问题讨论】:
-
也许this answer 有帮助?
-
@Tseng 这实际上看起来不错。谢谢
标签: c# asp.net-mvc asp.net-core