Допустим, у меня есть 2 веб-проекта MVC (web1 и web2) и 1 проект, содержащий общие представления (общие) ( с использованием разоргенератора David Ebbo )
У web1 и web2 есть файл test.cshtml. Несколько блоков кода в обоих файлах test.cshtml абсолютно одинаковы.
Я пытаюсь выяснить, возможно ли разделить декларативный помощник (@helper) между несколькими файлами cshtml, которые находятся в РАЗЛИЧНЫХ проектах. Поэтому размещение файла cshtml в моем App_Code не помогает (мне нужно было бы иметь 1 в каждом веб-проекте, что явно не то, что я хочу).
Я знаю, что мог бы создать несколько общих частичных представлений в моем «общем» проекте, но, кажется, довольно сложно создать 20 файлов cshtml, каждый из которых содержит очень небольшую часть html.
Я знаю, что могу создать стандартный вспомогательный метод (static string GenerateAPieceOfHtml(this HtmlHelper helper, ....)
), но там я теряю удобство написания HTML, как вы можете сделать это в файле cshtml.
Некоторое время я думал, что Я наткнулся на ответ, который позволил бы мне это сделать . Но, как я написал в комментарии, этот код для меня не компилировался.
Надеюсь, мой вопрос понятен :)
[Update]
Как просит csharpsi в комментарии ... Я попробовал код из другого поста, но он не выплевывал HTML для меня. Так как я начал думать, что этот ответ, вероятно, должен сработать, так как в нем 13 голосов, я решил дать ему вторую попытку ..
Снова я не получил никакого вывода, но потом я попробовал это немного по-другому .. и успех!
Я пытался это (что не выдает html на странице):
@{ new Test().DoSomething(Model); }
Это версия, которая работает:
@{
var html = new Test().DoSomething(Model);
@html
}
Другая версия, которая работает:
@(new Test().DoSomething(Model))
Что мне делать с этим вопросом? Удали это? Напиши ответ сам?