首页 > 解决方案 > 如何将当前参数传递给 MVC5 C# 中的 Url.Action?

问题描述

如何将当前参数传递给 MVC5 C# 中的 Url.Action?

视图模型:

IndexViewModel
 ->SubViewModel
   ->Option1

参数为 routeValues 中的 SubViewModel.Option1。

看法:

Url.Action("Index", this.ViewContext.RouteData.Values)

即使存在路由值,这也不会返回任何路由。

标签: c#razorasp.net-mvc-5

解决方案


我通过使用这个扩展找到了解决方案:

public static class NvcExtension
{
    public static IDictionary<string, object> ToDictionary(this NameValueCollection col)
    {
        IDictionary<string, object> dict = new Dictionary<string, object>();
        foreach (var k in col.AllKeys)
        {
            dict.Add(k, col.GetValues(k).FirstOrDefault());
        }

        return dict;
    }
}

看法:

Url.Action("Index", new RouteValueDictionary(this.Request.QueryString.ToDictionary()))

推荐阅读