2

我有这样一个网址:

www.test.com/MyAreaName/MyControllerName/MyAction?key1=value&key2=value

我需要这样的方法:

string generatedUrlWithQueryParams = Url.Action<MyController>(x => x.MyAction(MyViewModel));

我需要从 .cs 类而不是 razor html 文件中调用上述方法。

我怎样才能做到这一点?我听说过 asp.net mvc 期货,但我找不到合适的方法或命名空间来使用该方法。

4

2 回答 2

3

您是否正在寻找这样的东西:

string url = new UrlHelper(System.Web.HttpContext.Current.Request.RequestContext);
于 2016-01-26T18:11:09.513 回答
1

如果您有Request可用的(它在您的控制器操作中可用),您可以使用UrlHelper该类。

var urlBuilder = new UrlHelper(Request.RequestContext);
var url = urlBuilder .Action("YourAction", new YourViewModel { Age = 44, Code = "Test"});

或者

var url = urlBuilder .Action("YourAction", "YourController",
                                           new YourViewModel { Age = 44, Code = "Test"});

假设YourViewModelhasAgeCodeproperty 并且您需要它们作为生成的 url 的路由值。

如果您正在从另一个类调用此代码,您可以RequestContext从您的控制器/操作传递给该代码。

于 2016-01-26T18:07:45.600 回答