2008-12-11 23 views
11

Tôi có Visual Studio 2008 Professional và tôi đang gặp vấn đề với việc mở rộng và sụp đổ khối mã phương pháp trong các trang ASP.Net Generic Handler (ashx)Visual Studio ASP.Net mở rộng hoặc thu vấn đề trong ashx xử lý chung

tôi có thể nghĩ rằng bạn có thể làm điều tương tự như trong mã phía sau của các trang web .aspx.

Tôi có cùng sự cố này trên các hộp khác ngay cả với VS 2008 Standard và VS 2005 Professional. Tất cả các hộp đã được vá hoàn toàn (OS và Visual Studio.)

Có ai có đề xuất nào về cách bật tính năng này không?

+0

Câu hỏi hay. Tôi hy vọng một người khác có thể đưa ra một câu trả lời tốt hơn, mặc dù. Nỗi bực mình của tôi là khi chỉnh sửa các tệp ASHX, các tùy chọn thụt lề mã cho HTML được sử dụng thay cho các cài đặt C#. – Jacob

Trả lời

19

Bạn có thể buộc Visual Studio bỏ qua thực tế là mã của nó ở phía trước bạn đang làm việc bằng cách truy cập:

Công cụ | Tùy chọn

Và mở tab "Trình chỉnh sửa văn bản | Tiện ích tệp".

Tạo mục nhập mới cho tiện ích mở rộng "ashx", ánh xạ tới trình chỉnh sửa "Microsoft Visual C#" (hoặc "Microsoft Visual Basic", tùy chọn của bạn sẽ đưa bạn) và "Thêm".

OK hộp thoại, đóng và mở lại tệp ashx của bạn và khối mã của bạn sẽ bị thu gọn thành nội dung trái tim của bạn, nhưng chỉ thị @ sẽ khá xấu.

Bạn có cùng vấn đề nếu bạn có tập lệnh máy chủ trong tệp .aspx (ví dụ: trong dự án trang web và bạn không "Đặt mã trong một tệp riêng biệt"), thì bạn không thể thu gọn khối lớp trong ở đó.

+1

Và sau đó, để ngừng rên rỉ của studio trực quan về chỉ thị 'WebHandler', chỉ cần bình luận ra dòng, nó sẽ hoạt động như thể nó không phải! –

+4

điều này hoàn toàn khắc phục sự phác thảo, nhưng tiếc là phá vỡ intellisense – MaxPRafferty

+1

Nó cố định intellisense tại máy của tôi (vs2012) –

9

Vâng, có một giải pháp khác;) Tôi đã cố gắng đặt mã trong một tệp .cs riêng biệt như bạn có thể làm với tệp .aspx, nhưng điều đó là không thể. Vì vậy, cách tôi xử lý này ngay bây giờ là tôi đã tạo ra một lớp trong thư mục AppCode, mà ashx-file chỉ kéo dài ... như thế này:

something.ashx:

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

Và trong AppCode thư mục tôi đã tạo ra các tập tin cSomething.cs

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

Bây giờ tôi có thể chỉ cần mở cSomething.cs, chỉnh sửa mã của tôi # C với #region sụp đổ, bởi vì trong file .cs được mở ra trong trình soạn thảo đúng :)

+1

Đó là một giải pháp rất gọn gàng. :) –

+0

GIẢI PHÁP GIẢI THÍCH <3 –

3

Thêm /// trước dòng đầu tiên.

Như thế này:

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

dosent làm việc cho tôi, có thể là một VS trước đó? – Dementic

+0

Điều này chỉ hoạt động nếu bạn thêm phần mở rộng "ashx" được ánh xạ vào trình soạn thảo "Microsoft Visual C#" tại tab "Công cụ/Tùy chọn/Trình soạn thảo văn bản/Tệp mở rộng". –

1

Chỉ cần chọn một đoạn mã, như:

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

Sau đó Bấm "Ctrl + M + H" và Vualá ... Các đề cương công tác Bây giờ ... Và Intellisense Quá ...

Để dừng phác thảo Nhấn "Ctrl + M + P" ...

+0

Đây là giải pháp thực tế nhất mà tôi tìm thấy. –

Các vấn đề liên quan