2014-09-13 2 views
1
@Html.PagedListPager(Model, page =>Url.Action("GetOrderDetails", 
new { page, sortOrder = ViewBag.CurrentSort }), 
    PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() 
    { HttpMethod = "GET", UpdateTargetId = "gridTable" })) 

У меня есть код выше внутри MVC5.Добавить событие onclick для MVC5 Url.Action

Вопрос: Возможно ли добавить обработчик события onclick на стороне клиента для вышеуказанного URL-адреса, созданного с помощью Url.Action, добавив дополнительный параметр в код Url.Action? если да, то где в Url.Action я бы добавил это?

HTML, испускаемый вышеуказанным PagedListPager, приведен ниже.

<ul class="pagination"><li class="active"><a>1</a></li><li><a data-ajax="true" data-ajax-method="GET" 
data-ajax-mode="replace" data-ajax-update="#gridTable" href="/Order_Details/GetOrderDetails?page=2& 
amp;sortOrder=asc">2</a></li><li><a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" 
data-ajax-update="#gridTable" href="/Order_Details/GetOrderDetails?page=3&amp;sortOrder=asc">3</a> 
</li></ul> 
+0

да, вы можете сделать .. вы используете url.action с привязным тегом или где-то еще ?? –

+0

Не с якорной биркой. Я изменил свой код, чтобы показать, как я его использую. Его для компонента Mvc PagedList. – Sunil

ответ

1

Не совсем, нет.

Это связано с тем, что события щелчка происходят на элементах в HTML, а Url.Action не создает элемент. Он просто испускает строку. Если эта строка содержит часть элемента, то вы можете добавить обработчик кликов к этому элементу. Например, если вы это делаете:

<a id="someLink" href="@Url.Action(parameters)">click here</a> 

Затем вы можете добавить обработчик кликов в свой код на стороне клиента. ASP.NET MVC обычно включает в себя Jquery по умолчанию, так что вы, вероятно, можно использовать, что:

$('#someLink').click(function() { 
    // handle the click here 
}); 

, добавив некоторые дополнительные параметры для Url.Action кода

Как общее слово советы, вы «Я хочу, чтобы ваш серверный код и код на стороне клиента были раздельными. В ваших представлениях есть много мест для размещения клиентского кода, нет необходимости загрязнять его код на стороне сервера. И вы обнаружите, что ваш общий проект становится много проще в обслуживании, если вы сохраняете свои проблемы.

Редактировать: Вы обновили вопрос, и похоже, что вы используете что-то, называемое PagedListPager. Я не знаком с этим помощником HTML, но, предположительно, он выделяет некоторую HTML-разметку на страницу. Что это за разметка? Это - это то, что вы будете использовать для ваших обработчиков кликов. Опять же, ваши клиентские обработчики кликов работают на клиентском коде, а не на стороне сервера. Лучше всего разделить их.

+0

Я использую пакет PagedList.Mvc для получения пейджинга для табличных данных. Таким образом, модифицированный код является частью этого помощника PagedList.Mvc, но он использует MVC Url.Action в качестве параметра для метода PagedListPager. – Sunil

+0

@Sunil: Хорошо. Ну, принцип все тот же. Элементы HTML имеют события click, и вы прикрепляете обработчики на стороне клиента к этим событиям в JavaScript. – David

+0

Я добавил разметку html, испускаемую этим вспомогательным методом, в моем сообщении. – Sunil

 Смежные вопросы

  • Нет связанных вопросов^_^