加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将routeValues的Dictionary传递给ActionLink

发布时间:2020-12-16 07:15:03 所属栏目:asp.Net 来源:网络整理
导读:所有, 掌握ASP.NET MVC.到目前为止,这么好,但这个有点疯了. 我有一个视图模型,其中包含超链接的属性字典,如下所示: menu =模型变量 Html.ActionLink(Html.Encode(menu.Name),Html.Encode(menu.Action),Html.Encode(menu.Controller),menu.Attributes,null)
所有,

掌握ASP.NET MVC.到目前为止,这么好,但这个有点疯了.

我有一个视图模型,其中包含超链接的属性字典,如下所示:

menu =模型变量

Html.ActionLink(Html.Encode(menu.Name),Html.Encode(menu.Action),Html.Encode(menu.Controller),menu.Attributes,null)

问题是“menu.Attributes”的位置需要表单中的对象:

new  { Name = "Fred",Age=24 }

据我所知,这个匿名对象实际上是通过反射转换为字典,但是你不能在第一时间将字典传递给它!

为链接生成的Html只显示字典类型.

我到底怎么绕这个?重点是它的一般和控制器可以设置菜单.以前的属性….

基于下面的帖子,我尝试了以下内容:

Html.ActionLink(Html.Encode(menu.Name),new RouteValueDictionary(menu.Attributes),new Dictionary<string,object>())

但这仍然不起作用(我猜代码内部调用带对象的泛型方法?).以上(以及我将字典传递给第4个参数的原始解决方案产生类似于此的HTML:

<a href="/EditRole?Comparer=System.Collections.Generic.GenericEqualityComparer%601%5BSystem.String%5D&amp;Count=1&amp;Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.String%5D&amp;Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.String%5D">EditDocumentRoles</a>

即它使用反射和工作完全错误…

解决方法

关于如何修复的建议在MVC3中为我工作.用法示例:

IDictionary<string,object> routeValues = new Dictionary<string,object>();

routeValues.Add("EmployeeID",1);

@Html.ActionLink("Employee Details","EmployeeDetails","Employee",new RouteValueDictionary(routeValues),null);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读