@Helper辅助方法和@functions自定义函数
Posted 山涧清泉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Helper辅助方法和@functions自定义函数相关的知识,希望对你有一定的参考价值。
1、首先说下@helper辅助方法,当我们在多个视图中共用相同的方法的时候,可以把此方法剥离出来放到一个位置,此时就可以用到@Helper辅助方法,首先我们在解决方案右键添加
App_Code文件夹,然后添加一个cshtml文件,清空原有文件内容,然后把自定义的方法放进去,例如
@helper Show(int i) { if(i==1) { @:值为1 } else { @:值为其他 } }
2、当我们想实现更复杂的逻辑,比如想有返回值的时候可以通过@functions关键字来自定义函数,如下
@functions{ public static IHtmlString GetYesterday() { var theDay = DateTime.Now.AddDays(-1); return new HtmlString(theDay.ToString()); } }
注意这个地方一定得用static关键字来修饰,否则其他页面通过类调用不到这个方法,并且返回到视图的返回值类型必须定义为IHtmlString.
补充:当在页面中引入新类型的时候,可能命名空间很长,导致页面间好多重复代码,可以在view页面的开始位置导入命名空间,
如下:@model IEnumrable<MVC.Test.Animal>可以改为
@using MVC.Test
@model IEnumrable<Animal>;
当所有view页面都会引入相同的命名空间的时候,可以采取一种方式避免每个页面都要用@using来引入,在Views目录下有web.config文档,可以在此文档下的
<system.web.webPages.razor>区段加入每个页面都会用到的命名空间,如下:
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization"/> <add namespace="System.Web.Routing" /> <add namespace="WebApplication1" /> </namespaces> </pages> </system.web.webPages.razor>
http://www.cnblogs.com/developersupport/p/WebAPI-Security.html
以上是关于@Helper辅助方法和@functions自定义函数的主要内容,如果未能解决你的问题,请参考以下文章
Creating Custom Helper Methods 创建自定义辅助器方法----辅助器方法 ------ 精通ASP.NET MVC 5
Laravel Vuejs 实战:开发知乎 (33)自定义helper方法
Item 5: Write Helper Functions Instead of Complex Expressions(编写辅助函数,而不是复杂的表达式)
Item 5: Write Helper Functions Instead of Complex Expressions(编写辅助函数,而不是复杂的表达式)