2008-12-11 7 views
11

У меня есть Visual Studio 2008 Professional и у меня возникли проблемы с разворачивания и сворачивания метод блоков кода на страницах ASP.Net Generic Handler (.ashx)Visual Studio ASP.Net разворачивать и сворачивать вопрос в ASHx общие обработчики

I подумал бы, что вы могли бы сделать то же самое, что и в коде, находящемся за веб-страницами .aspx.

У меня такая же проблема на других коробках даже с VS 2008 Standard и VS 2005 Professional. Все ящики были полностью исправлены (OS и Visual Studio.)

Есть ли у кого-нибудь предложения по включению этой функции?

+0

Большой вопрос. Я надеюсь, что кто-то еще может придумать лучший ответ. Моя досада заключается в том, что при редактировании файлов ASHX вместо настроек C# используются настройки отступа кода для HTML. – Jacob 2010-12-14 23:20:43

ответ

19

Вы можете заставить Visual Studio игнорировать тот факт, что это код перед вы работаете с, перейдя в:

Инструменты | Параметры

И открытие вкладки «Текстовый редактор | Расширения файлов».

Создайте новую запись для расширения «ashx», отображаемую в редакторе «Microsoft Visual C#» (или «Microsoft Visual Basic», по мере того, как вы предпочитаете) и «Добавить».

OK диалог, закрыть и снова открыть ваш файл ashx, а ваши блоки кода будут разбиваться на ваш контент, но директива @ будет довольно уродливой.

У вас такая же проблема, если у вас есть серверный скрипт в файле .aspx (например, в проекте веб-сайта, а вы не размещаете код в отдельном файле), то вы не можете свернуть блоки классов в там тоже.

+1

И после этого, чтобы перестать скулить визуальную студию о директиве `WebHandler`, просто закомментируйте эту строку, она будет работать так, как будто это не так! – 2012-11-02 04:33:47

+4

это абсолютно исправляет изложение, но, к сожалению, перерывы intellisense – MaxPRafferty 2013-04-03 18:59:12

+1

Это исправлено intellisense у моей машины (vs2012) – 2013-07-29 13:27:34

9

Да, есть другое решение;) Я попытался поместить код в отдельный файл .cs, как вы можете делать с .aspx-файлами, но это было невозможно. Так как я справилась с этим сейчас, что я создал класс в директории AppCode, которую ASHX-файл просто проходит ... как это:

something.ashx:

<%@ WebHandler Language="C#" Class="Something" %> 
public class Something : cSomething {} 

И в AppCode папка Я создал файл cSomething.cs

using.. blabla 
public class wsaXmlComm : IHttpHandler 
{ 
    public cSomething() 
    { 
    } 
    public void ProcessRequest(HttpContext c) 
    { 
etc... 

Теперь я могу просто открыть cSomething.cs, редактировать мой C# код с #region рушится, потому что файл .cs открыт в правильном редакторе :)

+1

Это очень аккуратное малое решение :) – 2011-09-21 15:07:29

3

Добавьте /// перед первой строкой.

Как это:

///<%@ WebHandler Language="C#" Class="FooBar"%> 
1

Просто выберите фрагмент кода, как:

using System; 
using System.Web; 
using System.Web.Security; 
using System.Collections.Generic; 
using System.Configuration; 
using System.Data.SqlClient; 
using System.Data; 

Затем нажмите "Ctrl + M + H" и Vuala ... The Излагая Рабочая сейчас ... И Intellisense Too ...

Остановить наброски Пресса "Ctrl + M + P" ...