C# 如何为与Mvc中的控制器匹配的特定URL添加查询字符串?

C# 如何为与Mvc中的控制器匹配的特定URL添加查询字符串?,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我使用以下内容为特定控制器构建url: var f = new System.UriBuilder( Request.Url.AbsoluteUri ) { Path = Url.Action( "Get", "People") }; 它回来了 http://localhost/myApp/People/Get 好 向该url添加查询字符串的最佳方式是什么 意味着 我要做的是: string path = string.Concat(f.ToStrin

我使用以下内容为特定控制器构建url:

 var f = new System.UriBuilder( Request.Url.AbsoluteUri ) {
           Path = Url.Action( "Get", "People")
        };
它回来了

http://localhost/myApp/People/Get

向该url添加查询字符串的最佳方式是什么

意味着

我要做的是:

string path = string.Concat(f.ToString(), "?id=3");

但我想知道是否有其他方法(比我上面提供的更好)将querystring附加到该Url。

也许可以尝试以下扩展方法之一:

Url.Action( "Get", "People", new { id = 7 })

我想这会带来更多的代码,但也会带来更多的灵活性。

也许可以尝试下面所示的一种扩展方法:


这将导致更多的代码确定,但我想更灵活。

这是因为您有
id
param的路由。它实际上应该是
http://localhost/myApp/People/Get/7
可编辑。如果您想准确地添加
?id=3
-可能连接是最好的方法,或者将默认路由更改为不使用
id
param(不推荐),我理解,这就是为什么我要求使用更好的方法来不连接,我正在避免硬编码,如果您没有
personValue
param的路由,它将生成
/People/Get?personValue=7
(刚刚尝试过),这是因为您有
id
param的路由。它实际上应该是
http://localhost/myApp/People/Get/7
可编辑。如果您想准确地添加
?id=3
-可能连接是最好的方法,或者将默认路由更改为不使用
id
param(不推荐),我理解,这就是为什么我要求使用更好的方法来不连接,我正在避免硬编码,如果您没有用于
personValue
param的路由,它将生成
/People/Get?personValue=7
(刚刚尝试过)
Url.Action( "Get", "People", new { id = 7 })