我正在使用MVC 3,我在字符串类型属性中传递了一些url, 为此,我使用了
var uri = new UrlHelper().Action("ActionName", "ControllerName");
但它给出了错误。
{“值不能为空。\ r \ nParameter name:routeCollection”}
我知道 .Action(actionName,controllerName,routeValues,scheme); 有四个参数,但我只想传递两个,它的默认值是什么?
答案 0 :(得分:3)
如果您在Controller
内,则使用静态Url.Action()
,它会起作用:
var uri = Url.Action("ActionName", "ControllerName");
如果您不在Controller
之外(例如在您的Model
中),则必须像使用UrlHelper
一样使用HttpContext.Current.Request.RequestContext
,但在参数中传递一个Context,所以该方法可以为您制作正确的网址。
您可以通过以下方式获取请求上下文:
UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);
var uri = url.Action("ActionName", "ControllerName");
所以,如果你能像这样使用它:
{{1}}
答案 1 :(得分:1)
var uri = new UrlHelper(HttpContext.Current.Request.RequestContext).Action(“ActionName”,“ControllerName”);
添加 HttpContext.Current.Request.RequestContext 后,工作正常。