2014-09-16 2 views
0

Я видел этот связанный вопрос Creating and Simple Class and Calling a Method from a cshtml File. Как мы можем это сделать без использования папки App_Code?Создайте простой класс и вызовите его метод из файла cshtml без использования App_Code

В корне моего проекта, у меня есть класс Something.cs:

public class Something 
{ 
    public static void DoIt() 
    { 

    } 
} 

В корне моего проекта, я также index.cshtml со следующим кодом:

@Something.DoIt() 

Имя Something не существует в текущем контексте index.cshtml.

+0

'@ Something.DoIt()' означает, что вы что-то визуализируете, поэтому метод 'DoIt()' должен иметь возвращаемое значение. Кстати, где вы сохранили что-то классное? – Win

ответ

3

Вы пытались передать библиотеку проектов в cshtml Файл

@using ProjectName; 

Или ссылаться на объект, как этот @ProjectName.Something.DoIt()

+0

Могу ли я сделать это на производстве. Я имею в виду добавить файл cs на производство – yozawiratama

1

Если доступ к нему сверху .cshtml или внутри любой HTML строки шаблон, как для петли затем

@{ 
    MvcDemo.Something.DoIt(); 
} 

Внутри BeginForm или другой затем

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

Обращаем ваше внимание, что MvcDemo - это пространство имен, и если вы напишите @MvcDemo.Something.DoIt(), вы можете получить сообщение об ошибке.

0

Вот шаги, которые мне нужно было предпринять.

  1. Создайте файл с именем SomeThing.cs.
  2. Поместите файл в любом месте корневого каталога csproj.
  3. Добавить указанный файл в .csproj (это то, что я забыл сделать).
  4. Добавить класс SomeThing способом DoIt() в файл SomeThing.cs.
  5. Вызовите его методы из файла SomeFile.cshtml.

E.g. SomeFile.cshtml

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

Моя проблема не добавлял SomeThing.cs к .csproj.

+0

Пожалуйста, используйте ссылку для редактирования по вашему вопросу, чтобы добавить дополнительную информацию. Кнопка «Ответ на сообщение» должна использоваться только для полных ответов на вопрос. – jmoerdyk

+0

@jmoerdyk Я обновил ответ, чтобы сделать его более полным. –

+0

@ Является автором вопроса. –

Смежные вопросы