Не могу установить точку останова в файле .aspx (без кода) - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть одностраничный файл .aspx, который содержит код JavaScript и код C #.Нет файла с выделенным кодом.Код C #:

<script language="c#" runat="server">

protected void Page_Load(object sender, EventArgs e)
{
    HttpContext context = HttpContext.Current;
    string auth = Request.Headers["Authorization"];
    label1.InnerText = auth; 
    return;
}
</script>

Я создал веб-страницу, ссылающуюся на локальный веб-сайт под IIS.Я запускаю это в Visual Studio 2017 с правами администратора.Тем не менее, я не могу установить точку останова в коде C #.Я просто получаю следующее уведомление

«Не удалось вставить точку останова в этом месте».

Существует ли какое-либо ограничение в установке точки останова, если код не существует в отдельном файле с выделенным кодом?

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Если вам действительно нужно написать код C # на странице aspx, вы можете использовать блоки встроенного кода, например:

<% HttpContext context = HttpContext.Current;
   string auth = Request.Headers["Authorization"];
   label1.InnerText = auth; %>

Во встроенных блоках кода синтаксис <% = expression%> используется для разрешения выражения и возврата его значения в блок, и вы можете установить в нем точки останова.

0 голосов
/ 20 июля 2019

Вы должны быть в состоянии сделать это.По моему опыту, способность устанавливать точку останова не является стабильной.Когда VS запрещает это, вот что вы можете попробовать включить:

  1. Переместить раздел C # Script наверх (когда у вас много html выше c #)
  2. ОбновитьСтраница ASPX в браузере, затем попробуйте снова установить точку останова.

enter image description here

0 голосов
/ 10 сентября 2018

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

Вот цитата из MSDN Page :

Встроенные блоки кода поддерживаются на страницах веб-форм ASP.NET. прежде всего для сохранения обратной совместимости со старым ASP технология. В общем, использование встроенных блоков кода для сложных логика программирования не лучшая практика, потому что когда код смешанный на странице с разметкой, это может быть трудно отладить и поддерживать. Кроме того, потому что код выполняется только во время фаза рендеринга страницы, у вас значительно меньше гибкости код позади кода или блока скрипта в области видимости вашего кода соответствующий этап обработки страницы.

...