Преобразуйте HTML-кнопку в ActionLink
-
12-09-2019 - |
Вопрос
У меня есть настроенная и функционирующая html-кнопка с заданным набором требуемых свойств, которые я хотел бы преобразовать в текстовую ссылку.Кроме того, чтобы я мог ознакомиться с рабочими помощниками html и intellesense, я хотел бы посмотреть, как включить эти свойства в ActionLink:
<input type="button" id="RemoveRegistration_Submit<%=row.ID %>"
value="Remove From Cart"
onclick="$('#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"
align="right" />
спасибо
Решение
Это не должно быть так сложно .... но я думаю, вы имеете в виду Html.Link, потому что ActionLink означает, что вам нужно сгенерировать ссылку из таблицы маршрутов.
<%= Html.Link("Remove from Cart", "#", new {onclick = "#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"}) %>
- параметр №1:Текст ссылки
- параметр №2:href
параметр №3:Htmlатрибуты
общедоступная статическая строковая ссылка (это HtmlHelper HtmlHelper, string linkText, string href, object htmlAttributes) {
TagBuilder TagBuilder = новый TagBuilder("a"){ innerHTML = linkText;}
TagBuilder.Объединять атрибуты (htmlAttributes);
TagBuilder.Объединять атрибуты("href", href);
возвращает TagBuilder.toString(TagRenderMode.Обычный);
}
и не забудь <%@ Import Namespace="xxxxxx" %> в представлении, чтобы использовать метод расширения.
Другие советы
Кнопки не могут действовать как ссылки без javascript.
В целом - это плохая практика (поисковые системы не могут правильно проиндексировать вашу страницу и т.д.).
Я бы порекомендовал вам использовать теги привязки и сделать их похожими на кнопки.
Но если вам действительно это нужно - это статья дает ответ.
Редактировать:
Извините.Мой ответ прозвучал немного слишком быстро.
Это не совсем то, о чем вы спрашиваете (HtmlHelper не задействован), но именно так я бы решил эту проблему:
с учетом того, что я бы определил якорь (якоря без hrefs проходят проверку W3):
<a id='removefromcart_<%=row.ID%>' title='Remove from cart'
class='remove-link' />
во внешнем файле javascript:
var onclick = function(event){
event.preventDefault();
var link = $(event.targetSource());
//tag ids should be injected through view asp/cx
$('#Step2_RemoveRegistrationForm input[name=id]')
.val(link.attr('id').split('_')[1])
};
$('a[id^=removefromcart]').click(onclick);
в css:
a {cursor:pointer;} /*anchors without href by default haven't pointer*/
Я считаю, что было бы слишком грязно ковыряться с javascript в HtmlHelpers.
РЕДАКТИРОВАТЬ 2:
Текст привязки определяется внутри тегов.Я всегда это путаю.И кажется, что targetSource() это неправильно слишком.Попробуйте переписать его:event.targetSource()=>событие.цель.