我需要在一个cshtml文件中创建一个函数。你可以把我的情况想象成ASP。NET页面方法,它们是在页面中实现的最小web服务,因为它们的作用域是一个页面。我知道HTML助手(扩展方法),但我的函数只需要在一个cshtml文件。我不知道如何在视图中创建函数签名。 注意:我使用Razor模板引擎。
当前回答
如果你想访问页面的全局变量,你可以这样做:
@{
ViewData["Title"] = "Home Page";
var LoadingButtons = Model.ToDictionary(person => person, person => false);
string GetLoadingState (string person) => LoadingButtons[person] ? "is-loading" : string.Empty;
}
其他回答
为什么不直接在CSHTML文件中声明这个函数呢?
@functions{
public string GetSomeString(){
return string.Empty;
}
}
<h2>index</h2>
@GetSomeString()
你可以使用@helper Razor指令:
@helper WelcomeMessage(string username)
{
<p>Welcome, @username.</p>
}
然后像这样调用它:
@WelcomeMessage("John Smith")
看一下Declarative Razor Helpers
如果你的方法不需要返回html,必须做一些其他的事情,那么你可以在Razor中使用lambda而不是helper方法
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
Func<int,int,int> Sum = (a, b) => a + b;
}
<h2>Index</h2>
@Sum(3,4)
如果你想访问页面的全局变量,你可以这样做:
@{
ViewData["Title"] = "Home Page";
var LoadingButtons = Model.ToDictionary(person => person, person => false);
string GetLoadingState (string person) => LoadingButtons[person] ? "is-loading" : string.Empty;
}
推荐文章
- 如何在cshtml模板中创建函数?
- 如何在ASP中处理复选框。NET MVC窗体?
- 什么是@Html。DisplayFor语法?
- 我如何定义一个方法在剃刀?
- 错误:«无法加载类型mvcapapplication»
- 如何从ASP返回200 HTTP状态码。NET MVC 3控制器
- 如何在ASP中找到一个动作的绝对url。净MVC吗?
- @media媒体查询和ASP。NET MVC razor语法冲突
- MVC 4 Razor文件上传
- 用于单元测试的NUnit vs. Visual Studio 2008测试项目
- Html5 data-*与asp.net mvc textbox html属性
- Razor中的预处理器指令
- 如何在MVC应用程序中缓存数据
- ASP。NET MVC Razor渲染没有编码
- 在ASP中服务favicon.ico。NET MVC