ASP.NET MVC 扩展方法
2018-06-22 06:13:20来源:未知 阅读 ()
一、扩展方法的语法
在视图中使用扩展方法的时候 如果扩展方法定义的类在其他命名空间,需要首先引用该命名空间,才能使用该扩展方法
static class 静态类名
{
static 返回类型 扩展方法名(this 扩展的类型 对象名,[其他参数列表])
{
//扩展方法代码
}
}
eg1:给String类型增加一个判断字符串是否为整数的扩展方法
1 /// <summary> 2 /// 给String类型增加一个判断字符串是否为整数的扩展方法 3 /// </summary> 4 public static class StringExt 5 { 6 public static bool IsInt(this String str) 7 { 8 int i; 9 return int.TryParse(str, out i); 10 } 11 } 12 13 public class Program 14 { 15 static void Main(string[] args) 16 { 17 String str = "123"; 18 if (str.IsInt()) 19 { 20 Console.WriteLine(str + "是整数"); 21 } 22 else 23 { 24 Console.WriteLine(str + "不是整数"); 25 } 26 Console.ReadLine(); 27 } 28 }
eg2:定义学生类的扩展方法,用来实现验证邮箱
学生类:
1 public class Student 2 { 3 public int id { get; set; } 4 public string name { get; set; } 5 public string email { get; set; } 6 7 public Student() { } 8 public Student(int _id,string _name,string _email) 9 { 10 id = _id; 11 name = _name; 12 email = _email; 13 } 14 }
扩展方法类:
1 //邮箱验证扩展方法 2 public static bool IsValidEmail(this Student stu) 3 { 4 int i = stu.email.LastIndexOf('@'); 5 int j = stu.email.LastIndexOf('.'); 6 if(i<j) 7 { 8 return true; 9 } 10 else 11 { 12 return false; 13 } 14 } 15 public class Program 16 { 17 static void Main(string[] args) 18 { 19 Student stu = new Student(1, "Mary", "abc@qq.com"); 20 21 22 bool rt = stu.IsValidEmail(); //调用扩展方法 23 Console.WriteLine(rt); 24 25 rt = StuExtend.IsValidEmail(stu); //调用扩展方法 26 Console.WriteLine(rt); 27 Console.ReadLine(); 28 } 29 }
eg3:扩展HtmlHelper
扩展方法类
1 public static class HtmlExtension 2 { 3 /// <summary> 4 /// 输出表单提交按钮 5 /// </summary> 6 /// <param name="htmlHelper">HtmlHelper对象</param> 7 /// <param name="name"></param> 8 /// <param name="value"></param> 9 /// <returns></returns> 10 public static MvcHtmlString Submit(this HtmlHelper htmlHelper,string name,string value) 11 { 12 //TagBuilder 用于辅助创建标记 13 var builder = new TagBuilder("input"); 14 builder.MergeAttribute("type","submit"); 15 //设置value属性 16 builder.MergeAttribute("value",value); 17 //设置name属性 18 builder.MergeAttribute("name",name); 19 //设置id属性 20 builder.GenerateId(name); 21 return MvcHtmlString.Create(builder.ToString()); 22 } 23 24 public static MvcHtmlString Submit(this HtmlHelper htmlHelper, string name, string value, object htmlAttributes) 25 { 26 //TagBuilder 用于辅助创建标记 27 var builder = new TagBuilder("input"); 28 builder.MergeAttribute("type", "submit"); 29 //设置value属性 30 builder.MergeAttribute("value", value); 31 //设置name属性 32 builder.MergeAttribute("name", name); 33 //设置id属性 34 builder.GenerateId(name); 35 //设置其他属性 36 builder.MergeAttributes(new RouteValueDictionary(htmlAttributes)); 37 return MvcHtmlString.Create(builder.ToString()); 38 } 39 }
//页面中进行使用
1 @{ 2 Layout = null; 3 } 4 @using ExtensionMethods.App_Code; 5 6 <!DOCTYPE html> 7 8 <html> 9 <head> 10 <meta name="viewport" content="width=device-width" /> 11 <title>Index</title> 12 </head> 13 <body> 14 <div> 15 @Html.Submit("login","登录") 16 17 @Html.Submit("login", "登录", new { @class="opt_sub",title="点击提交"}) 18 </div> 19 </body> 20 </html>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:MVC5应用程序目录
下一篇:MVC匿名类传值学习
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET使用Ajax返回Json对象的方法 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash