zoukankan      html  css  js  c++  java
  • mvc4 自定义HtmlHelper

    好久没写博客了,最近只看博客不写的习惯很不好啊。

    好了,最近的项目中大量的用到了表单,很多表单有特殊的编写,但是在该项目中又有很多重复的地方,这个时候若能封装成htmlhelper将大大降低工作量的。
    下面给出基本的使用模型,备忘

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Linq.Expressions;
    using System.Web;
    using System.Web.Mvc;
    //引入下面的命名空间后,就可以在view中直接@出来了
    namespace System.Web.Mvc
    {
        public static class FormHtmlHelper
        {
            private const string editorwidth = "100";
            private const string editorheight = "100";
           //给下面的方法指定第一个参数为this HtmlHelper helper,这样就可以在@Ht中
           //点出来了,否则你还得@[自定义类].[你的方法]。下面的方法看上去需要传进去两个值,
           //实际上只要@Html.就可以点出来了
            public static MvcHtmlString NecessaryLabeler(this HtmlHelper helper,string name)
            {
                var ntag = new TagBuilder("span");
                ntag.AddCssClass("red");
                ntag.SetInnerText("*");
                var nametag = new TagBuilder("span");
                //tag.AddCssClass("");
                nametag.SetInnerText(name);
                return new MvcHtmlString(ntag.ToString()+nametag.ToString());
            }
           //下面的方法可以把视图的model传进去,获取值的方法看下面的lamda表达式。。。
            public static MvcHtmlString DisabledEditorFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
            {
                object data = ModelMetadata.FromLambdaExpression<TModel, TValue>(expression, html.ViewData).Model;
                if (data == null)
                {
                    data="";
                }
                //to do what you want!
            }
            
        }
    }
    

      

  • 相关阅读:
    能ping通Linux但是ssh连不上问题解决方法
    php遍历目录与文件夹的多种方法详解
    Apache与Nginx的优缺点比较
    Apache查看连接数和限制当前的连接数
    【MySql】性能优化之分析命令
    PHP实现各种经典算法
    301、404、200、304等HTTP状态
    常用服务器资源地址集合
    关于WAMP的apache 人多了就访问非常卡的问题解决方法
    HTML基础
  • 原文地址:https://www.cnblogs.com/srszzw/p/3849243.html
Copyright © 2011-2022 走看看