MVC4 扩展方法

1. 扩展代码机构

namespace System.Web.Mvc.Html
{
    public static class FormExtensions//表单相关扩展方法,例如创建表单标签等。

    public static class InputExtensions//这里包含了所有input,例如:text,button,readiobutton等等。

    public static class LinkExtensions//链接相关方法

    public class MvcForm : IDisposable//与客户端控件无关

    public static class RenderPartialExtensions//这是输出PartialView

    public static class SelectExtensions//输出下拉框

    public static class TextAreaExtensions//输出多行文本框

    public static class ValidationExtensions//输出相关表单元素验证。
}

 

2. TagBuilder 结构

    // Methods
    public TagBuilder(string tagName);
    public void AddCssClass(string value);//增加样式
    public void GenerateId(string name);//设置控件ID
    private string GetAttributesString();
    public void MergeAttribute(string key, string value);//设置属性值
    public void MergeAttribute(string key, string value, bool replaceExisting);
    public void MergeAttributes<TKey, TValue>(IDictionary<TKey, TValue> attributes);
    public void MergeAttributes<TKey, TValue>(IDictionary<TKey, TValue> attributes, bool replaceExisting);
    public void SetInnerText(string innerText);//设置显示文本
    public override string ToString();
    public string ToString(TagRenderMode renderMode);//输出控件html

 

3. 示例: Html.Image(...)

public static class ImageHelper
{
        public static string Image(this HtmlHelper helper, string id, string url, string alternateText)
        {
            return Image(helper, id, url, alternateText, null);
        }

        public static string Image(this HtmlHelper helper, string id, string url, string alternateText, object htmlAttributes)
        {
            // 创建IMG标签
            var builder = new TagBuilder("img");

            // 增加ID属性
            builder.GenerateId(id);

            // 增加属性
            builder.MergeAttribute("src", url);
            builder.MergeAttribute("alt", alternateText);
            builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));

            // 输出完整的img标签
            return builder.ToString(TagRenderMode.SelfClosing);
        }
}

MVC4 扩展方法,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。