我有Visual Studio 2008 Professional,我在ASP.Net Generic Handler页面(.ashx)中扩展和折叠方法代码块时遇到问题
我原本以为你可以像.aspx网页背后的代码一样做。
即使使用VS 2008 Standard和VS 2005 Professional,我在其他盒子上也有同样的问题。所有框都已完全修补(OS和Visual Studio。)
是否有人建议启用此功能?
答案 0 :(得分:21)
您可以强制Visual Studio忽略这样一个事实,即您正在使用的代码是:
工具|选项
打开“文本编辑器|文件扩展名”选项卡。
为扩展名“ashx”创建一个新条目,映射到编辑器“Microsoft Visual C#”(或“Microsoft Visual Basic”,如您的偏好所示),并“添加”它。
确定对话框,关闭并重新打开您的ashx文件,您的代码块将崩溃到您的内容,但@指令将相当难看。
如果您在.aspx文件中有服务器端脚本(例如在网站项目中并且您没有“将代码放在单独的文件中”),则会遇到同样的问题,然后您无法在那里折叠类块任
答案 1 :(得分:9)
在App_Code
目录中创建一个类,ashx文件只是引用它......就像这样:
SomethingHandler.ashx:
<%@ WebHandler Language="C#" Class="SomethingHandler" %>
在App_Code
文件夹中,我创建了文件SomethingHandler.cs
,内容为SomethingHandler
using System;
using System.Web;
// using blabla...
public class SomethingHandler : IHttpHandler
{
public void ProcessRequest(HttpContext c)
{
etc...
现在我可以打开SomethingHandler.cs,使用#region折叠编辑我的C#代码,因为.cs文件在右侧编辑器中打开:)
在VS 2019中测试过。
答案 2 :(得分:5)
只需选择一段代码,例如:
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 ”和Vualá...概述现在工作......还有智能感知......
停止概述按“ Ctrl + M + P ”...
答案 3 :(得分:3)
在第一行前添加///。
像这样:
///<%@ WebHandler Language="C#" Class="FooBar"%>
答案 4 :(得分:0)
Today in VS 2019 (and I believe it works in earlier versions) you can:
create a class in the App_Code
directory, which the ashx-file references. Like this:
SomeHandler.ashx:
<%@ WebHandler Language="C#" Class="SomeHandler" %>
And in the App_Code
folder create the file SomeHandler.cs
with class SomeHandler
using System;
using System.Web;
// using blabla...
public class SomeHandler : IHttpHandler
{
public void ProcessRequest(HttpContext c)
{
etc...