欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET MVC 扩展方法必须在非泛型静态类中定义

程序员文章站 2023-12-06 14:39:46
.net mvc 扩展方法也是一种静态方法,也能像实例方法一样被调用。 .net mvc 3中扩展方法特点: (1)扩展类的名称以extensions结尾; (2)扩展类的类型是stat...

.net mvc 扩展方法也是一种静态方法,也能像实例方法一样被调用。

.net mvc 3中扩展方法特点:

(1)扩展类的名称以extensions结尾;

(2)扩展类的类型是static;
(3)扩展方法至少有一个参数,第一个参数必须指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀;

(4)扩展方法的类型是static;

(5)如果拓展方法的返回值是字符串则返回类型是mhtmlstring,而不是string;

(6)页面调用必须用using指令导入扩展类型所在的命名空间。

具体案例参照以下代码:

1,新建扩展类htmlextensions,在其中创建扩展方法stringtruncate,具体代码参考代码1.1(该方法的作用是网站常用技术,即截取字符串)

代码1.1

using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.mvc;

namespace testallmvc.helps
{
    public static class htmlextensions
    {
        public static mvchtmlstring stringtruncate(this htmlhelper htmlhelper, string input, int length)
        {
            if (input.length 
2,本例使用razor视图引擎,新建index.cshtml,代码如代码2.1

代码2.1

@{
    viewbag.title = "home page";
}
@using testallmvc.helps;

@html.stringtruncate("钓鱼岛是中国的!自古以来是中国不可分割的神圣领土",8)
3,执行结果如图3.1

.NET MVC 扩展方法必须在非泛型静态类中定义