Ответ 1
Вы пробовали что-то в этом направлении?
var pollAction = '<%=Url.Action("CheckStatus", "MyController") %>';
Я хочу вставить ссылку на действие контроллера на моей странице, чтобы я мог использовать его из javascript. Что-то вроде
var pollAction = '/Mycontroller/CheckStatus'
Теперь я рад жестко кодировать его, но было бы очень приятно, если бы был метод, который я мог бы использовать для создания URL-адреса. AjaxHelper/HtmlExtensions содержат методы для создания гиперссылок (.ActionLink(...) и т.д.), Но если вы посмотрите на их кишки, они полагаются на метод UrlHelper.GenerateUrl() для разрешения контроллера и действия в url. Это внутренне, поэтому я не могу это понять.
Кто-нибудь нашел хороший способ в этой области? Или я должен бросить свой собственный?
Вы пробовали что-то в этом направлении?
var pollAction = '<%=Url.Action("CheckStatus", "MyController") %>';
Если ваша страница или элемент управления наследуется от ViewPage
или ViewUserControl
, используйте метод Url.Action
.
Если нет, используйте вместо этого:
String url = RouteTable.Routes.GetVirtualPath
(
((MvcHandler) HttpContext.Current.CurrentHandler).RequestContext,
new RouteValueDictionary
(
new
{
controller = "MyController",
action = "CheckState",
id = idParameter
}
)
).VirtualPath;
Поместите это внутри метода на свой код и вызовите его из представления HTML.