Не могу получить доступ к методу расширения с параметром URLHelper в контроллере! Наоборот в поле зрения есть доступ
-
24-09-2019 - |
Вопрос
Почему определенный метод расширения с URLHelper не добавляется в URL.ExtensionMethod. Когда я хочу использовать его в контроллере! Но у меня есть доступ к нему ввиду?
public static string Home(this UrlHelper helper)
{
return helper.RouteUrl("ABC", new { controller = "ABC", Action = "Default" });
}
Я не доступа к:
public ActionResult Default()
{
return Redirect(Url.Home());
}
У меня есть доступ в поле зрения:
<a href="<%=Url.Home() %>" title="Hello">Hello</a>
Решение
URLHelper - это свойство контроллера, а не контроллера.
Убедитесь, что вы импортировали пространство имен класса метода расширения на вашем представлении. Если вы снова импортируете одно и то же пространство имен, вы можете добавить его в Web.config:
<pages>
<namespaces>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="Telerik.Web.Mvc"/>
<add namespace="Telerik.Web.Mvc.UI"/>
<add namespace="Shrinkr"/>
<add namespace="Shrinkr.DataTransferObjects"/>
<add namespace="Shrinkr.Web"/>
</namespaces>
</pages>
Другие советы
Url
является членом Viewpage, но не контроллер базы. Поэтому у вас нет предварительно построенного URLHelper для конструкторов. В общем, вам не нужно приносить URL-адреса в вашем контроллере.
Почему вы не используете Контроллер .edirecttoroute.?