我如何在Razor中定义一个方法?
我如何在Razor中定义一个方法?
单独留下什么时候(如果有的话)应该做的辩论, @function是你怎么做的。
@functions { // Add code here. }
你是指内联助手?
@helper SayHello(string name) { <div>Hello @name</div> } @SayHello("John")
你也可以用这样的Func做到这一点
@{ var getStyle = new Func<int, int, string>((width, margin) => string.Format("width: {0}px; margin: {1}px;", width, margin)); } <div style="@getStyle(50, 2)"></div>
剃刀只是一个模板引擎。
你应该创build一个普通的课程。
如果你想在Razor页面中创build一个方法,把它们放在一个@functions
块中 。
在剃刀内部定义一个函数是非常简单的。
@functions { public static HtmlString OrderedList(IEnumerable<string> items) { } }
所以你可以在任何地方调用这个函数。 喜欢
@Functions.OrderedList(new[] { "Blue", "Red", "Green" })
但是,同样的工作也可以通过helper
完成。 举个例子
@helper OrderedList(IEnumerable<string> items){ <ol> @foreach(var item in items){ <li>@item</li> } </ol> }
那么区别是什么呢?? 根据之前的post ,@helpers和@functions共享一个共同点 – 它们使得代码在网页中重复使用成为可能。 他们也有一个共同点 – 他们乍看起来是一样的,这可能会导致他们的angular色有点混乱。 但是,它们并不相同。 从本质上讲,助手是Razor Sytnax的一个可重用的片段,作为一种方法公开,旨在将HTML呈现给浏览器,而一个函数是静态工具方法,可以从Web Pages应用程序中的任何位置调用。 帮助器的返回types始终是HelperResult,而函数的返回types是您想要的。
- 直接访问发布数据
- Html.TextboxFor整数/十进制的默认值为空而不是0
- LINQ to Entities不能识别方法'System.Web.Mvc.FileResult'
- 为什么我会得到“编译dynamicexpression式所需的一个或多个types无法find”?
- 更新用户数据 – ASP.NET身份
- 如何使用ASP.Net MVC路由路由图像?
- ASP.NET MVC中如何枚举formcollection?
- 传递到字典中的模型项目types为“mvc.Models.ModelA”,但是此字典需要“mvc.Models.ModelB”types的模型项目
- ASP.NET MVC和text / xml内容types