Asp.net mvc 从Razor调用类中的方法
我在MVC4项目的App_代码目录中的一个类中有一个方法。我可以从控制器调用这个函数,但我不知道如何从视图(.cshtml)文件调用它 在我看来,我尝试了几件事,都是这样:Asp.net mvc 从Razor调用类中的方法,asp.net-mvc,razor,Asp.net Mvc,Razor,我在MVC4项目的App_代码目录中的一个类中有一个方法。我可以从控制器调用这个函数,但我不知道如何从视图(.cshtml)文件调用它 在我看来,我尝试了几件事,都是这样: @LST.App_Code.Utilities.log.Info("asdf"); 当我这样做时,我在尝试加载页面时收到以下编译错误: 描述:编译资源时出错 服务此请求所必需的。请查看以下具体内容 错误详细信息,并适当修改源代码 编译器错误消息:CS0433:类型“LST.App\u Code.Utilities” 两者都
@LST.App_Code.Utilities.log.Info("asdf");
当我这样做时,我在尝试加载页面时收到以下编译错误:
描述:编译资源时出错
服务此请求所必需的。请查看以下具体内容
错误详细信息,并适当修改源代码
编译器错误消息:CS0433:类型“LST.App\u Code.Utilities”
两者都存在
'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET
Files\root\bd7cb704\59585235\assembly\dl3\3b0ad3ff\ec2b5faa\u 0b13ce01\mvcroot.DLL'
和'c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET'
Files\root\bd7cb704\59585235\App_Code.cgwncvj.dll'
源错误:
第7行:@使用(Html.BeginForm())第8行:{9行:@(LST.App_Code.Utilities.log.Info(“asdf”))第10行:第11行:
@Html.AntiForgeryToken() 我已经尝试了关于清理项目、asp.net临时文件目录和设置批编译选项的建议。没有任何效果
我对Razor语法的复杂性不太熟悉。有人能给我指出正确的方向吗?我让它在.cs文件中没有名称空间的情况下工作 如果您已经创建了app_code文件夹,那么您可以像这样创建类文件(没有名称空间): 从你的角度来说是这样的:
@{
new FooClass().Foo(...);
}
为我工作…您是否可能在两个不同的文件中有两个
LST.App\u code.Utilities
类(并且忘记partial
关键字)?我不这么认为,但我会寻找它。谢谢你的回答。@Mattdowdy,你是在引用你的表示层的第二个项目吗?@DaveA,不,我不是。这是一个非常简单的项目。我没有数据访问库或业务层或任何东西。它完全是自包含的。但是,这应该是可能的,对吗?我应该能够使用c从一个视图来看,所有这些都是静态类中的静态方法,对吗?
using System:
...
public class FooClass{
public string Foo(...)
{
...
}
}
@{
new FooClass().Foo(...);
}