ASP.NET MVC – Как получить Ajax «onclick» для определенного действия (мне нужно для Ajax.ActionLink то, что Url.RouteUrl делает для Html.ActionLink)
-
05-09-2019 - |
Вопрос
ПЕРЕСМОТР
Я хочу добавить onclick к элементу, который обрабатывает запрос Ajax, а не просто перенаправление маршрута.
У меня есть эти параметры для URL-адреса маршрута.
Html.ActionLink(params)
Url.RouteUrl(params) 'returns JUST ActionUrl
Так что я могу пойти как
<div onclick="javascript:location.href('<%=Url.RouteUrl(params)%>')"></div>
Но как мне создать следующее??
<div onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, updateTargetId: 'WorkorderDetails' });"></div>
Решение
Оказывается, это невозможно.Функция Sys.Mvc.AsyncHyperlink.handleClick() использует тег привязки для правильной работы.href, указанный в привязке, используется для определения того, какая служба вызывается на сервере.
В итоге я создал Ajax.ActionLink() и сделал его невидимым (display:none).Я знаю, что вызываю щелчок с помощью Javascript.jQuery на самом деле (обычный вызов:link.click() работает неправильно!):
$(link).trigger("click");
Другие советы
Я не уверен, правильно ли я понимаю вопрос, но вам нужен только необработанный URL-адрес, основанный на методе действия или что-то в этом роде?
Тогда как насчет Класс УрлХелпер?
Этот предыдущий вопрос по SO обсуждает этот вариант.
Как я уже сказал, я не уверен, что понял вопрос на 100%.