在模型中添加 link

Add link in the model

我正在使用 MVC 3,我在字符串类型 属性 中传递了一些 url, 为此我使用了

var uri = new UrlHelper().Action("ActionName", "ControllerName");

但是它给出了错误。这是

{"Value cannot be null.\r\nParameter name: routeCollection"}

我知道 .Action(actionName, controllerName, routeValues, scheme); 有四个参数,但我只想传递两个,它的默认值是多少?

如果您在 Controller 内,请改用静态 Url.Action(),它将起作用:

var uri = Url.Action("ActionName", "ControllerName");

如果你在 Controller 之外(例如在你的 Model 中),你必须像你一样使用 UrlHelper,但在参数中传递一个上下文,所以该方法可以为您做出正确的url。

可以这样获取请求上下文:

HttpContext.Current.Request.RequestContext

所以,如果你能像这样使用它:

UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
var uri = url.Action("ActionName", "ControllerName");

我搜索了一下,找到了答案。 Same Question

var uri = new UrlHelper(HttpContext.Current.Request.RequestContext).Action("ActionName", "ControllerName");

添加HttpContext.Current.Request.RequestContext后效果很好