我的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数据类型的第三个参数?
答案 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>