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

时间:2018-08-09 11:11:02

标签: c# razor asp.net-mvc-5

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

viewModel:

IndexViewModel
 ->SubViewModel
   ->Option1

该参数是routeValues中的SubViewModel.Option1。

查看:

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

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

1 个答案:

答案 0 :(得分:1)

我使用此扩展程序找到了解决方案:

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()))