Url.Action从字符串变量中获取路径值

时间:2018-03-20 15:11:26

标签: razor asp.net-mvc-5

我的cshtml中有3个字符串变量:

string strController = "Controller";
string strAction = "Action";
string strQuerystring = "Pacode=2";

我正在尝试在锚标记上生成一个动作:

<a href="@Url.Action(@strAction , @strController,@strQuerystring )" title="test">
  <span>@Test</span>
</a>

预期输出: Controller\Action?Pacode=2

实际输出: Controller\Action?Length=8

当action方法期望作为对象路由值时,如何传递string数据类型的第三个参数?

1 个答案:

答案 0 :(得分:0)

现在非常糟糕的黑客攻击。创建了一个扩展方法。

如果有人发布了更好的解决方案,那将会很棒。

     public static string CustomUrlAction(this UrlHelper url, string controller = null, string action = null, string Query = null)
            {
                if (string.IsNullOrEmpty(controller)&& string.IsNullOrEmpty(action) && string.IsNullOrEmpty(Query ))
                {
                    return "#";
                }

                if (string.IsNullOrEmpty(Query) )
                {
                    return url.Action(action, controller);
                }
                return url.Action(action, controller) +"?"+ Query;
            }

&安培;称之为

<a href="@Url.CustomUrlAction(@strAction , @strController,@strQuerystring )" title="test">
  <span>@Test</span>
</a>