• Mvc扩展Html.ActionLink(强类型扩展)


    在网上看了有说把ActionLink扩展成类似于@Html.ActionLink<T>(T=>T.Index(...))这种写法的,于是就自己写了一个

    代码写的不是很好,仅供参考:

      public static void ActionLink<T>(this  HtmlHelper helper, Expression<Func<T, ActionResult>> expression,string linkText, object paras=null) where T : Controller
            {
                var para = expression.Parameters[0] as ParameterExpression;
                var controller = para.Type.Name.Replace("Controller", "");
                var action = (expression.Body as MethodCallExpression).Method.Name;
                var linkUrl = string.Format("/{0}/{1}", controller, action);
                if (paras != null)
                {
                    linkUrl += "?";
                    Type paratype = paras.GetType();
                    PropertyInfo[] propers = paratype.GetProperties();
                    foreach (var item in propers)
                    {
                        var paraname = item.Name;
                        var paraVal = item.GetValue(paras);

                        linkUrl += paraname + "=" + paraVal;
                        linkUrl += "&";
                    }
                    linkUrl = linkUrl.TrimEnd('&');
                    string linkHtmltag = string.Format("<a href='{0}'>{1}</a>", linkUrl, linkText);
                    HttpContext.Current.Response.Write(linkHtmltag);
                }
                
            }

    如果谁有更好的办法可以留言一下,谢谢!

  • 相关阅读:
    EF 4.3 CodeBased 数据迁移演练
    极酷播放插件使用问题
    IIS优化《转载》
    Entity Framework收藏版
    如何得到ADO.NET Entity Framework生成的SQL
    浏览器兼容性笔记(转)
    初识window phone 7程序
    如何真正提高ASP.NET网站的性能《转载》
    IIS使用十大原则,(IIS过期时间,IIS缓存设置) 【转载】
    IIS开启GZIP压缩效率对比及部署方法《转载》
  • 原文地址:https://www.cnblogs.com/a546558309/p/2649973.html
Copyright © 2020-2023  润新知