2011-01-19 28 views
9

Tôi có một chìa khóa trong web.config như -ASP.NET Conditional Markup Rendering Theo Web.config chính

<add key="IsDemo" value ="true"/> 

Tôi muốn hiển thị/ẩn đánh dấu dựa trên trên lối vào web.config cho một phi Thẻ máy chủ html mà không cần sử dụng mã phía sau tệp (vì không có tệp .cs và không có điều khiển runat = máy chủ). Something tương tự như mã giả sau đây:

IF (IsDemo == "true") 
THEN 
<tr> 
    <td id="tdDemoSection" colspan="2" align="left" valign="top"> 
     <.....> 
    </td> 
</tr> 
ENDIF 

Có ai biết rằng chúng ta có thể viết logic có điều kiện như vậy trong đánh dấu aspx? Xin hãy giúp !!!

EDIT:

Mục I đang ẩn hoặc hiển thị có một số dữ liệu như tên truy cập và mật khẩu. Vì vậy, tôi không muốn người dùng sử dụng Firebug hoặc Công cụ nhà phát triển web để xem đánh dấu ẩn. đánh dấu không nên đi đến phía khách hàng.

Trả lời

22

Cú pháp cho một cái gì đó như thế sẽ

<% if(System.Configuration.ConfigurationManager.AppSettings["IsDemo"] == "true") %> 
<% { %> 
<!-- Protected HTML goes here --> 
<% } %> 

Giả định trang này nằm trong C#.

Bạn có thể mã hóa mã này bằng cách phòng thủ hơn xung quanh việc truy xuất AppSettings ví dụ: những gì xảy ra trong trường hợp giá trị là null, vv

+0

Cảm ơn. Thực hiện một số thay đổi đối với mã của bạn và thêm đoạn mã bên dưới đã hoạt động cho tôi. –

2

Nếu tôi hiểu đúng, bạn không muốn sử dụng phía máy chủ (thành phần aspx, với thuộc tính runat = "server") và chỉ muốn kiểm soát hiển thị html trên trang aspx, sau đó thử giải pháp này.

Tạo một tài sản trong tập tin codebehind (hoặc tốt hơn vẫn còn trong một số lớp cấu hình helper khác):

//IN C# (OR VB) file 
protected string Demo{ 
    get{ 
      return ConfigurationManager.AppSettings["IsDemo"]=="true"? 
        "none":"block"; 
     } 
} 

Trong trang aspx:

<tr style="display:<%= Demo%>;"> 
    <td>blah blah</td> 
</tr> 
+0

Mục I đang ẩn hoặc hiển thị có một số dữ liệu như tên truy cập và mật khẩu. Vì vậy, tôi không muốn người dùng sử dụng Firebug hoặc Công cụ nhà phát triển web để xem đánh dấu ẩn. đánh dấu không nên đi đến phía khách hàng. –

+1

Tại sao địa ngục bạn đang đặt tên người dùng và mật khẩu trên trang? – TheVillageIdiot

+0

Vâng. Câu hỏi của bạn là hợp lệ. :) Tôi đã hỏi cùng một câu hỏi cho khách hàng của tôi. Nhưng trên thực tế, nó không phải là một mật khẩu, nhưng nó là một mã truy cập được chia sẻ giữa nhiều người dùng. –

5

Giải pháp: -

<% If (ConfigurationManager.AppSettings("IsDemo").ToLower().Equals("true")) Then%> 
    <tr> 
     <.....> 
    </tr> 
<% Else%> 
    <tr> 
     <.....> 
    </tr> 
<% End If%> 
+0

Câu hỏi được gắn thẻ với C#, điều này trông giống như VB.NET. – Neolisk