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

如何从浏览器URL向C#方法传递多个参数?

解决方法

方式一:使用查询字符串(无需修改路由)

直接在原有URL后追加查询参数,格式为?apikey=你的API密钥,示例:

http://foobar.n.co.za/Newlook/PrintInvoice/GenerateInvoicePDFByInvoiceNum/72341d?apikey=你的Guid格式密钥

ASP.NET MVC会自动将查询字符串中的apikey参数绑定到方法的同名参数上。

方式二:修改路由模板(参数放在URL路径中)

如果希望把两个参数都放在URL路径里,需要在项目的路由配置(通常是RouteConfig.cs或Startup.cs中的路由部分)添加一条匹配规则:

routes.MapRoute(
    name: "InvoicePDFWithApiKey",
    url: "{controller}/{action}/{id}/{apikey}",
    defaults: new { controller = "PrintInvoice", action = "GenerateInvoicePDFByInvoiceNum" }
);

添加后,就可以用如下格式的URL调用:

http://foobar.n.co.za/Newlook/PrintInvoice/GenerateInvoicePDFByInvoiceNum/72341d/你的Guid格式密钥

注意:这条路由要放在通用路由之前,避免被其他路由规则优先匹配。

注意事项

  • 传递的apikey必须是有效的Guid格式,否则方法中Guid.Parse(apikey)会抛出异常
  • 参数名要和方法定义中的id、apikey完全对应(ASP.NET MVC参数绑定大小写不敏感,但建议保持一致)

内容的提问来源于stack exchange,提问作者Marc L

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:05:21