1.建立没有返回值的Razor内嵌函数(但是能直接输出内容)
必须以@符号开头,没有返回值但能直接输出内容,比如:
@helper showTitle(string strTitle){
if(strTitle.Length > ){
@(strTitle.Substring(,)+"...") //输出内容
}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页面,需要可以留言
有错请留步指导