1. 程式人生 > >通過一個MVC HtmlHelper擴充套件例項,簡單說明擴充套件步驟

通過一個MVC HtmlHelper擴充套件例項,簡單說明擴充套件步驟

擴充套件Submit


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TestMvcHelper
{
    public static class HtmlExtensions
    {
        public static MvcHtmlString Submit(this HtmlHelper helper, string value)
        {
            var builder = new TagBuilder("input"); //使我們建立的標籤名字設為input
            builder.MergeAttribute("type", "submit");  //新增屬性 type="submit"
            builder.MergeAttribute("value", value);
            return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing)); 
        }
    }
}

上述例項說明

(1)、在使用TagBuilder需要引入名稱空間System.Web.Mvc。


(2)、Submit方法名是對應檢視中呼叫的名稱。 (如:@Html.Submit("提交") )


(3)、this HtmlHelper

helper 將Submit方法新增到HtmlHelper中,value是傳過來的提交按鈕上的文字。


(4)、var builder = new TagBuilder("input");     

設定標籤名字設為input。


(5)、builder.MergeAttribute("type", "submit")  

設定標籤屬性type="submit"。


(6)、builder.MergeAttribute("value", value);     

設定標籤提交按鈕Value值。


(7)、TagRenderMode.SelfClosing                    

表示用於呈現自結束標記(例如,<input />)的模式。


(8)、TagRenderMode是個列舉類,分別為

Normal(表示用於呈現正常文字的模式)

StartTag(表示用於呈現開始標記(例如,<tag>)的模式)

EndTag(表示用於呈現結束標記(例如,</tag>)的模式)

SelfClosing(表示用於呈現自結束標記(例如,<tag />)的模式)。


(9)、MvcHtmlString作為返回值是為了使返回值不被轉義,比如"<"不會被轉成"&lt"。

View中呼叫

@Html.Submit("提交")
參考資料:通過一個MVC  HtmlHelper擴充套件例項,簡單說明擴充套件步驟  http://www.studyofnet.com/news/1209.html

相關推薦

通過一個MVC HtmlHelper擴充套件例項簡單說明擴充套件步驟

擴充套件Submit using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace TestMvcH

使用AddPermission獲取Android6.o許可權附上一個自定義的dialog簡單實用。

先來看看效果。。 1.新增AddPermission的依賴 gitbub地址:https://github.com/yanzhenjie/AndPermission implementation ‘com.yanzhenjie:permission:2.0.0-rc1

JVM就為其建立一個Class型別的例項並關聯起來。

JVM為每個載入的class建立對應的Class例項,並在例項中儲存該class的所有資訊。如果獲取了某個Class例項,則可以獲取到該例項對應的class的所有資訊。 通過Class例項獲取class資訊的方法稱為反射(Reflection)。 反射的目的是當

Java socket通訊例項簡單入門socket例項程式碼

是不是看了許多socket入門知識,卻還是不能實際運用呢,這篇文章通過利用簡單例項程式講解通過socket實現客戶端與伺服器之間的通訊。這篇文章可以讓你不需要了解socket原理也能利用,便於應急,但建議之後要好好補補關於soket的基礎知識。 首先就是上程式碼,先是伺服器

java: mvc設計思想例項網頁上查詢資料庫中資料

  前段時間學習了mvc設計模式,並按照mvc模式設計了一個網頁,在這個網頁上我可以根據不同條件查詢資料庫的資料。  關於mvc是什麼,以及採用mvc模式的作用,這篇部落格講的十分淺顯易懂:https://blog.csdn.net/muyi_amen/article/det

ubuntu中taglist和ctags安裝簡單

vim配置文件 vim配置 eight ubun pos share 簡單 popu one 1.使用命令安裝ctags: sudo apt-get install ctags 2.安裝taglist 下載: http://vim.sourceforge.net/s

5個Excel序號填充技巧簡單即學即用

工作 dff 今天 圖片 合並 分享圖片 nta ima 選擇 由於工作需要,經常都要用到Excel序號填充,於是就整理了5個比較常用的Excel序號填充技巧,分享給大家,需要的朋友建議收藏一份,方法簡單,即學即用! 自然序號填充 方法:選中你需要填充的區域,輸入公式=

使用C語言來擴充套件PHP寫PHP擴充套件dll

以前寫過一次PHP擴充套件DLL,那個是利用呼叫系統的COM口實現的擴充套件,與PHP不能真正融合。心血來潮,研究了一下PHP的原始碼,網上找了一些資料,自己嘗試寫了一個擴充套件DLL,測試沒問題。下面記錄一下具體擴充套件方法:   1、首先從www.php.net網站

69道Spring面試題和答案簡單了無套路

ada 函數 編碼 相對 相互 目標 功能 時也 必須 目錄 Spring 概述 依賴註入 Spring beans Spring註解 Spring數據訪問 Spring面向切面編程(AOP) Spring MVC Spring 概述 1. 什麽是

建立一個簡單spring例項spring單例與多例初始化與銷燬

(1)在配置完spring提示框架後(上一遍文章有介紹),首先建立一個專案,匯入sprig所需的jar包然後書寫主配置檔案applicationContext.<?xml version="1.0" encoding="UTF-8"?> <beans xml

前端為什麼要使用元件化的思想通過一個例項來分析

在平時專案中,為什麼我們都會採用元件化的思想去編寫程式碼? 其實的原因很簡單!!! 我們在寫程式碼的時候,寫完以後發現這個程式碼會出現在其他地方,想要複用,或者同事感興趣,想使用這個程式碼。這個時候我們就需要通過元件化來實現程式碼的複用了,否則工作量真

一個完整的簡單jsp+servlet例項實現簡單的登入

開發環境myeclipse+tomcat8 1、先建立web project,專案名為RegisterSystem, 2、在WebRoot 目錄下建立login.jsp檔案: <%@

k8s技術預研1--通過一個簡單例項認識k8s基礎概念知識

一、Kubernetes基礎知識 1、在Kubernete中,Service是分散式叢集架構的核心,一個Service物件擁有如下關鍵特徵 擁有一個唯一指定的名字。 擁有一個虛擬IP和埠號。 能夠提供某種遠端服務能力。 被對映到了提供這種服務能力的一組容器應用上。

一個簡單的Android Intent使用例項包括顯式/隱式2種呼叫

最近又開始接觸了一下Android,準備將每次寫的小Demo都在這裡備份一下,以防以後忘記了,Demo相對來說都比較簡單,內容也比較片面。今天主要就是練習了一下intent的使用,主要涉及到的知識點有:intent傳值,隱式呼叫。 1.傳值: 傳送端:intent.putE

ACCESS通過一個連接寫入的數據還有一個連接卻讀取不出來

type acc 而是 dcl 讀取 ret class 保存 rip 近期在用c#實現一個數據導入的功能,將一個ACCESS數據庫中的數據導入到還有一個ACCESS的數據庫中,然後顯示出來,可是導入成功了。卻顯示不出來。 經過研究認為應該是緩存的原因

python網絡編程通過服務名稱和會話類型(tcpudp)獲取端口號簡單的異常處理

one span try num python網絡 int 代碼 sys.argv 通過 作為一個php程序員,同時有對網絡方面感興趣,php就比較蛋疼了,所以就抽了些時間看python 之前學python基礎因為工作原因,斷斷續續的看了個基礎,差不多是可以寫代碼了 最近在

java算法面試題:設計一個快速排序。雙路快速排序簡單易於理解。

面試題 != ava 思路 add bubuko 比較器 繼續 array package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Com

填坑:Windows下使用OpenSSL生成自簽證書(很簡單一個晚上搞明白的讓後來者少走彎路)

vat 都是 環境 csr 過程 環境變量 crypt 報錯 out 最近在學習中發現openssl 中有個坑,所有的教程都是openssl genrsa -des3 -out private.key 1024,但是產生的證書,npm start 之後就報錯如下: erro

Learun快速開發平臺asp.net+mvc強大後臺技術給開發一個加速度

前端 asp.net+mvc 快速開發平臺 快速發框架 Learun快速開發平臺,asp.net+mvc強大後臺技術,給開發一個加速度 公司業務量比較大,接了很多項目,為了縮短開發周期老板讓我牽頭搭建了一個快速開發平臺。 我們主要的業務是做OA、CRM、ERP一類的管理系統,一個通

asp.net+mvc 快速開發平臺加強工作流引擎精美UI給開發一個加速度!

Learun快速開發平臺,asp.net+mvc強大後臺技術,給開發一個加速度 公司業務量比較大,接了很多專案,為了縮短開發週期老闆讓我牽頭搭建了一個快速開發平臺。 我們主要的業務是做OA、CRM、ERP一類的管理系統,一個通用的後臺搭出來,再配合一些快速開發的元件開發效率能提高很多