Подтвердить что ты не робот

"Этот тип страницы не обслуживается". при попытке просмотреть файлы *.cshtml

Я просто создаю новый проект MVC 4 Web API и создаю новый .cshtml файл, содержащий очень простой HTML:

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <div>

    </div>
</body>
</html>

При открытии URL-адреса отображается следующая ошибка:

Ошибка сервера в приложении "/".

Этот тип страницы не обслуживается.

Описание. Тип запрашиваемой страницы не подается, потому что это было явно запрещено. Расширение ".cshtml" может быть неверен. Просмотрите URL-адрес ниже и убедитесь, что он правильно написано.

Запрошенный URL:/index.cshtml

Я протестировал этот сценарий (точно такой же проект) на развивающейся машине одного из моих коллег. Он работал, как ожидалось. Поэтому я думаю, что что-то не так с конфигурацией или какой-то установкой. Но где искать? Ни локальная служба IIS, ни Visual Studio Development Server не работают.

UPDATE

Доступ к файлу .cshtml напрямую не для производственного кода - он предназначен для обучения, только! Переход на /Home/Index работает отлично. Поэтому нет ничего другого, что, очевидно, неверно. Прямой доступ непосредственно к файлам .cshtml.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ 2:

Я наконец понял, чего вы пытаетесь достичь. Извините, что я не понимал изначально. Я недостаточно внимательно прочитал ваш вопрос. Вы пытаетесь напрямую получить доступ к странице Razor за пределами папки ~/Views.

В ASP.NET MVC 4 это отключено по умолчанию. Чтобы включить все, что вам нужно сделать, выполните следующие настройки в файле web.config:

<add key="webpages:Enabled" value="true" />

Значение по умолчанию false по умолчанию при создании нового проекта ASP.NET MVC 4 с использованием любого из шаблонов. Поэтому я думаю, что ваш коллега уже сделал это, если вы говорите, что он работает на своем ПК.

ORIGINAL

Вы не должны запрашивать непосредственно файл .cshtml в приложении ASP.NET MVC. Это виды, расположенные в папке ~/Views. Они не доступны напрямую. Вам нужно соответствующее действие контроллера.

Например, скажем, что у вас есть следующий контроллер:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

а затем определил представление ~/Views/Home/Index.cshtml с содержимым, указанным в вашем вопросе.

Теперь, когда вы запустите приложение, вы можете перейти к /Home/Index, который выполнит действие Index контроллера Home и отобразит соответствующее представление.

Я бы порекомендовал вам прочитать некоторые обучающие материалы о ASP.NET MVC, чтобы ознакомиться с основными основными понятиями.


ОБНОВЛЕНИЕ 1:

Код, который блокирует запросы к файлам .cshtml внутри папки ~/Views, находится внутри файла ~/Views/web.config:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
        <remove name="BlockViewHandler"/>
        <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
</system.webServer>

удаp >

Ответ 2

У меня была такая же проблема, и я решил ее, перейдя в свойства Клиента и где он говорит "Запустить действие", выберите текущую страницу. Я установил его на определенную страницу.

Ответ 3

Если вы включили веб-страницы и вы подтвердили, что версия .NET верна, ваша проблема, скорее всего, на сервере IIS не будет иметь бинарных файлов бритвы, доступных для совместного использования на всех сайтах. Чтобы исправить это, вы должны убедиться, что вы включили двоичные файлы mvc в папку /bin. Эта ссылка очень хорошо объясняет:
http://www.codeproject.com/Answers/437259/his-type-of-page-is-not-served-CSHTML-how-to-serve#answer1