1.建立没有返回值的Razor内嵌函数(但是能直接输出内容)
必须以@符号开头,没有返回值但能直接输出内容,比如:
@helper showTitle(string strTitle){ if(strTitle.Length > 8){ @(strTitle.Substring(0,8)+"...") //输出内容 }else{ @strTitle //输出内容 } }
2.建立有返回值的Razor内嵌函数
必须以@functions开头且里面是一个静态方法,比如通过图书ISBN编号输出图片:
@functions{ public static string ShowImg(string isbn) { string FilePath = "~/Content/Images/BookCovers/"+isbn+".jpg";//虚拟路径 string PhysicPath = HttpContext.Current.Server.MapPath(FilePath);//将虚拟路径转换为物理路径 if(File.Exists(PhysicPath)){ return FilePath; } else{ return "~/Content/Images/book_01.gif"; } } }
3.建立全局的Razor内嵌函数
1)在项目中新建一个app_code文件夹(里面的文件会最终编译生成一个类,这个类可以在任何地方调用,不需要引入命名空间)
2)在文件夹下添加后缀名为cshtml的视图文件,比如创建RazorHelper.cshtml文件,那么最终会编译成RazorHelper类
3)编写没有返回值的或者有返回值的内嵌函数,写法和1、2中的一致
4)在其他页面调用内嵌函数方法:@类名.方法名(参数值),比如:
@RazorHelper.showTitle(t.Title)//无返回值函数 @RazorHelper.ShowImg(item.ISBN)//有返回值的函数
这些代码来自MvcBookShop项目,在F:\Program\MvcBookShop\MvcBookShop目录下的Index页面,需要可以留言
有错请留步指导
时间: 2024-10-27 04:26:07