2015-07-27 3 views
2

Я использовал бритву и C# в приложениях MVC и командной строки до сих пор, но это также было бы очень полезно, если бы я мог использовать на отдельной веб-странице, для небольшого одноразового кода фрагменты и т. д. Таким же образом вы бы использовали классический ASP или PHP, где он просто был бы слишком громоздким, чтобы создать целый проект и скомпилировать приложение.Использование C# и бритвы на автономных страницах

Я пробовал сделать только страницу .cshtml и вставить в нее какой-то простой код бритвы, чтобы перебрать некоторые даты, но IIS не обработает его. Есть ли способ достичь того, что я ищу? Возможно, это скорее вопрос сервера, чем вопрос программирования, если я заранее извинюсь.

+0

Я понял неправильно? Вы хотите сделать веб-страницу просто используя бритву? – MstfAsan

+0

Мне интересно, можно ли использовать его так, как PHP или классический asp. Или даже просто C# сам – Dennis

+0

Я понял, но я не хотел уходить, не спрашивая. Помните, возможно, был какой-то способ или взломать – Dennis

ответ

3

Да, если у меня что-то не хватает?

Просто добавив следующее web.config на свой сайт (IIS 8 на Windows 8.1 Pro), означало, что файлы .cshtml работают точно так же, как классический ASP/PHP; то есть URL для них был путь к файловой системе, а код Razor работал нормально.

<configuration> 
<appSettings> 
    <add key="webPages:Version" value="2.0"/> 
    </appSettings> 

    <system.web> 
     <customErrors mode="Off"/><!-- I assume that for little test pages you want easy error reporting! --> 
    </system.web> 
</configuration> 

Стыдно признаться, я не знаю, почему это работает. Ключ конфигурации предполагает, что он использует веб-страницы ASP.NET, которые Патрик Хофман говорит в комментарии, постепенно прекращается; но я уверен, что никогда не устанавливал Web Matrix, и все это было сделано с помощью Notepad; папка сайта IIS просто содержит указанные выше минимальные web.config, пару тестовых файлов .cshtml и одну подпапку для тестирования, чтобы узнать, будет ли запущен .cshtml.

То, что я делал раньше для простых сколотили тест/полезности сайтов что-то вроде выше методики для пользовательского интерфейса, но .cs файлы для программы логики положить в папку App_Code так .NET Виль компилировать их на лету.

Пример последнего, для тех, кто не играл с /App_Code раньше:

1) Создать /App_Code папку

2) Добавить совершенно нормальный .cs файл к нему с определениями классов:

using System; 

namespace Minimal 
{ 
    public class Boo 
    { 
     public static String Get() 
     { 
      return "BOO!"; 
     } 
    } 
} 

3) Это магически скомпилировано и доступно в виде кода в любой обычной сборке.

4) Таким образом, вы можете создать представление, как:

<html> 
    <head></head> 
    <body> 
     <h1>@Minimal.Boo.Get()</h1> 
    </body> 
</html> 

Это очень удобно; делает даже быстро сбитые инструменты и тесты четкими и легкими в разработке, а также очень легко добавлять в обычный проект VS, если они становятся достаточно зрелыми для этого.

+0

Вы совершенно правы. Спасибо, что просветил меня сегодня. –

+0

Спасибо, Патрик, я надеюсь, что многие мои изменения не смутили проблему, я должен был немного поиграть до того, как я действительно разместил :) – Whelkaholism

+0

Нет проблем. Причина, по которой он работает, заключается в том, что вызов cshtml обрабатывается обработчиком ASP.NET ISAPI, а не ASP.NET MVC. –

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