asp.net MVC3 使用带JS事件的控件

最近研究MVC,确实是个好东西啊,但是自带的 @Html.ActionLink方法只能生成简单的控件,想要给加个onclick事件都不行,于是查找了资料,但是都没有一个比较详细的介绍,最后还是半摸索半查找弄出来了。

首先要在类里添加一个能够融合自定义属性的控件,最好写在某个公用类里面。

namespace EduWeb.Common
{
    public static class HtmlHelperEx
    {
        public static MvcHtmlString ActionLinkForJS(this HtmlHelper htmlHelper, string linkText, object htmlAttributes)
        {
            if (String.IsNullOrEmpty(linkText))
            {
                throw new ArgumentException("linkText");
            }

            TagBuilder linkTag = new TagBuilder("a");
            linkTag.InnerHtml = linkText;
            linkTag.MergeAttribute("href", "javascript:void(0)");
            linkTag.MergeAttributes(new RouteValueDictionary(htmlAttributes));
            return new MvcHtmlString(linkTag.ToString(TagRenderMode.Normal));
        }
    }
}

要注意的是一定要返回MvcHtmlString类型的,如果直接返回tostring,会在页面上显示成字符串。这里面其实核心就是

linkTag.MergeAttributes(new RouteValueDictionary(htmlAttributes));
这一句,意思是把控件的属性都附加上去。

这样在VIEW里就可以给控件加上想要的属性了,不仅仅能加事件,还可以加各种自定义的属性来保存想要的信息。

@Html.ActionLinkForJS("重置密码", new { onclick = "alertEx('" + item.UserId + "')", customvalue = item.UserId })

这个控件就会有一个customvalue的属性,能够取到userid,非常方便

转载于:https://www.cnblogs.com/nightzsze/archive/2012/09/06/2673039.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值