我有一个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" />
THX
答案 0 :(得分:1)
如果没有javascript,按钮就不能像链接一样 一般来说 - 这是一种不好的做法(搜索引擎无法正确索引您的页面等)。
我建议您使用锚标签,使它们看起来像按钮。
但如果你真的需要它 - this文章提供了答案。
编辑:
对不起。拍我的答案有点太快了。
这不完全是你要问的(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*/
我认为在HtmlHelpers中使用javascript来解决它会太麻烦。
<强> EDIT2:强>
锚文本在标记内定义。我一直很困惑。似乎targetSource()is wrong也是如此。尝试重写它:event.targetSource()=&gt; event.target。
答案 1 :(得分:0)
它不应该那么难....但我认为你的意思是Html.Link,因为ActionLink意味着你需要从路由表生成链接。
<%= Html.Link("Remove from Cart", "#", new {onclick = "#Step2_RemoveRegistrationForm input[name=id]').val('<%=row.ID %>'); $('#Step2_RemoveRegistrationForm').submit();"}) %>
param#3:htmlAttributes
public static string Link(这个HtmlHelper htmlHelper,string linkText,string href,object htmlAttributes) {
TagBuilder tagBuilder = new TagBuilder(“a”){InnerHtml = linkText; }
tagBuilder.MergeAttributes(htmlAttributes);
tagBuilder.MergeAttributes(“href”,href);
返回tagBuilder.ToString(TagRenderMode.Normal);
}
并且不要忘记&lt;%@ Import Namespace =“xxxxxx”%&gt;在视图上以使用扩展方法。