在模型中添加 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后效果很好
我正在使用 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后效果很好