3
<% if (Session["desig"].ToString() == "Developer"){%>
    <td>
        <select name='zone' id="zone" onchange="showLoc(this.value,'mlodg_loc')"> 
            <option value="Select Zone">Select Zone</option>
            <option value="East">East</option>
            <option value="West">West</option>
            <option value="North">North</option>
            <option value="South1">South1</option>
            <option value="South2">South2</option>
            <option value="South3">South3</option>
        </select>
    </td>  
<%}
  else 
  {%>
        <td>
          <select name='zone' id="Select1" onchange="showLoc(this.value,'mlodg_loc')"> 
              <option value="Select Zone">Select Zone</option>
              <option value="<%#Session["zone"]%>"><%# Session["zone"].ToString() %></option>
          </select>
        </td>
<%}%>

如果我直接编写,上面的代码工作正常,我尝试在其他文件和主文件中编写此代码Response.WriteFile("zone.aspx")

我如何包含它有什么方法可以包含并且还想知道编写上述语句的更好方法。

谢谢

4

3 回答 3

5

UserControlsasp.net 中有没有为此目的,为您拥有的这段代码制作一个.ascx文件,并将其用作任何地方的控件。

于 2013-01-24T11:19:51.970 回答
3

Response.WriteFile只是将文件内容写入 Http 响应流,而不对其进行解析。

尽管可以在 asp.net ( <!--#include file="xxx.ext" -->) 中使用服务器端包含,但这对 IMO 来说具有 asp-classic 代码气味。

重用.aspx组件的更好方法是使用用户控件 (.ascx)

类似的问题在这里

更新

Response.WriteFile适用于普通 Html、.css 或 .js,但不适用于包含 c# 或引用 .Net 对象的代码(您Session在代码中使用过),例如

Response.WriteFile("HtmlSnippet.html")

HtmlSnippet.html在哪里

<p>In breaking news, scientists have discovered a planet in 
     <a href='http://en.wikipedia.org/wiki/Alpha_Centauri_Bb'>Alpha Centauri</a>
</p>

使用服务器端包含,例如<!--#include file="file.inc" -->将允许您在 file.inc 中放置类似的内容:

<% if (Session["desig"].ToString() == "Developer"){ %>
   You are a Developer!!
<% } %>

.ascx但是,建议使用用户控件(您的可重用控件将是一流的对象,具有属性、方法并能够引发事件。你需要在这里做一些研究。

于 2013-01-24T11:20:18.020 回答
0

Response.WriteFile does not process the code on the server side. It simply takes the contents of html and pipes it to the browser. If your code contains code blocks that must be processed by the server you can use this handy feature:

<div ID="menuContent" runat="server">
    <!-- #Include virtual="/menu.aspx" -->
</div>   

In my menu.aspx file I have raw html and some C# codeblocks and ASP will resolve those after inserting the content into the page. Great huh?

于 2016-04-29T19:32:12.457 回答