创建一个简单的类并从cshtml文件调用其方法,而不使用App_Code

时间:2014-09-16 22:47:44

标签: c# asp.net razor

我已经看到了这个相关的问题Creating and Simple Class and Calling a Method from a cshtml File。如何在不使用App_Code文件夹的情况下执行

在我的项目根目录中,我有一个Something.cs类:

public class Something 
{
    public static void DoIt()  
    { 

    }
}

在我项目的根目录中,我还有index.cshtml,代码如下:

@Something.DoIt()

index.cshtml的当前上下文中不存在名称Something

3 个答案:

答案 0 :(得分:4)

您是否尝试过引用cshtml文件中的项目库

@using ProjectName;

或者参考像@ProjectName.Something.DoIt()

这样的对象

答案 1 :(得分:1)

如果您在.cshtml之上或在任何HTML字符串模板中访问它,例如for循环,那么

@{
   MvcDemo.Something.DoIt();
}

在BeginForm内部或其他

@using (Html.BeginForm())
{
 MvcDemo.Something.DoIt();
}

请注意MvcDemo是命名空间,如果你直接写@MvcDemo.Something.DoIt(),你可能会收到错误。

答案 2 :(得分:0)

以下是我需要采取的步骤。

  1. 创建一个名为SomeThing.cs的文件。
  2. 将所述文件放在csproj根目录中的任何位置。
  3. 将所述文件添加到.csproj (这是我忘记做的事情)。
  4. 使用方法SomeThing将类DoIt()添加到SomeThing.cs文件中。
  5. 从SomeFile.cshtml文件中调用其方法。
  6. E.g。 SomeFile.cshtml

    @SomeThing.DoIt() // this assumes class SomeThing is NOT inside a namespace.
    

    我的问题是没有将SomeThing.cs添加到.csproj。