Tools->Options->TextEditor->File Extension
Add ashx Microsoft Visual C#
Apply
OK
重啟VS就可以了,效果如下圖所示
代碼折疊是可以了,但是有一點不舒服的是,第一行<%@這里會出現紅線,不影響程序運行,但是看着不舒服(強迫症犯了)。
.ashx文件還有另外一個問題:.ashx文件中的代碼不會被編譯到.dll文件中。
要解決這個問題,可以把.ashx文件中的cs代碼分離出來,也就是把.ashx文件中除了第一行之外的所有代碼剪切掉,在App_Code中創建一個class文件,把剛才剪切的代碼全部覆蓋到新建的class文件中,假設我們創建的class文件的名稱是 Test.cs,修改一下.ashx文件的第一行代碼,加上 CodeBehind="Test.cs",.ashx文件的所有代碼如下:
<%@ WebHandler Language="C#" class="Handler" CodeBehind="Test.cs" %>
Test.cs的所有代碼如下:
using System; using System.Web; public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write("Hello World"); } public bool IsReusable { get { return false; } } }
這樣,代碼折疊解決了,發布WEB程序的時候,.ashx相關的cs代碼也會被編譯到App_Code.dll文件中。
只是創建文件的時候需要手動去修改一下,稍微有點麻煩。