You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中Url.Action传递字符串参数异常,如何正确传参?

解决Url.Action传递字符串参数出现Length=8的问题

嗨,这个坑我之前踩过!你遇到的Length=8问题,核心原因是**Url.Action的第三个参数预期接收的是路由值对象,而不是字符串**。当你直接传strQuerystring这个字符串时,.NET会把它当作一个普通对象,通过反射读取它的公共属性——字符串的Length属性值正好是8(你的字符串"Pacode=2"长度就是8),所以才生成了奇怪的?Length=8。

下面给你几种靠谱的解决办法:

方法1:用匿名对象传递路由参数(最推荐)

直接把查询参数拆成键值对,用匿名对象传递,这是Url.Action设计的标准用法:

@{
    string strController = "Controller";
    string strAction = "Action";
    // 这里直接用键值对定义参数,不用拼接成字符串
    var routeParams = new { Pacode = 2 };
}

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

这样生成的链接就是你预期的Controller/Action?Pacode=2,清晰又不容易出错。

方法2:如果必须用字符串形式的QueryString(动态场景)

如果你的strQuerystring是从其他地方动态获取的完整查询字符串(比如不是你自己拼接的),可以用查询字符串拼接工具来处理:

ASP.NET Core 版本

先确保引用了命名空间@using Microsoft.AspNetCore.WebUtilities;,然后:

@{
    string strController = "Controller";
    string strAction = "Action";
    string strQuerystring = "Pacode=2";
    
    // 先获取基础路由地址,再拼接查询字符串
    var baseUrl = Url.Action(strAction, strController);
    var fullUrl = QueryHelpers.AddQueryString(baseUrl, strQuerystring);
}

<a href="@fullUrl" title="test">
    <span>@Test</span>
</a>

ASP.NET MVC(非Core)版本

可以自己拆分字符串的键值对,放到RouteValueDictionary里:

@{
    string strController = "Controller";
    string strAction = "Action";
    string strQuerystring = "Pacode=2";
    
    var routeDict = new RouteValueDictionary();
    // 拆分querystring的键值对
    foreach (var pair in strQuerystring.Split('&'))
    {
        var keyValue = pair.Split('=');
        if (keyValue.Length == 2)
        {
            routeDict.Add(keyValue[0], keyValue[1]);
        }
    }
}

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

方法3:直接拼接完整URL(不推荐,但应急可用)

如果上面的方法都不想用,也可以直接手动拼接URL,但要注意编码问题:

<a href="@($"/{strController}/{strAction}?{strQuerystring}")" title="test">
    <span>@Test</span>
</a>

⚠️ 注意:这种方式没有自动处理URL编码,当参数值包含特殊字符时容易出问题,所以尽量不用。


内容的提问来源于stack exchange,提问作者Abdul Rehman Sayed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:05:45