在网络应用中,有一个.aspx页面doesnt have the code behind file(.cs)
。它位于名为staticcontent
的文件夹中。以下是aspx的标记
<%@ Page Title="" Language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
</head>
<body>
<form action='searchdata.aspx' method='post'>
<input type='text' value='' id='searchText' />
<button id='btnSearch'>Search</button>
</form>
</body>
</html>
现在我想将此搜索文本框移动到asp.net并在此页面中注册。
然而,它似乎没有被编译。
它仍然只呈现用户控件的语法
<%@ Register Src="~/controls/EmpSearch.ascx" TagName="search" TagPrefix="emp" %>
<emp:search runat="server" ID="searchCtrl"></emp:search>
呈现HTML
<body>
This contains only static text and there is no dynamic data
Employee Search
<emp:search runat="server" ID="searchCtrl"></emp:search>
</body>
尝试使用<!--#include file="~/controls/EmpSearch.ascx"-->
没有影响。
为什么不在这里编译.aspx页面。
.csproj has only <Content Include="StaticContent\Employee.aspx" />
并且没有
<Compile Include="StaticContent\Employee.aspx.cs">
因为它没有代码
答案 0 :(得分:3)
没有整个标记很难说,但我会说你可能有一些配置使得存储在staticcontent
文件夹中的文件被视为静态内容:-)而不是传递给asp.net编译/执行。
在静态内容文件夹的配置中查看web.config或IIS。
有关信息,这适用于我的开发服务器:
WebForm1.aspx:
<%@ Page Language="C#"%>
<%@ Register Src="~/WebUserControl1.ascx" TagPrefix="uc1" TagName="WebUserControl1" %>
<html>
<head>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<uc1:WebUserControl1 runat="server" ID="WebUserControl1" />
</form>
</body>
</html>
WebUserControl1.ascx:
<%@ Control Language="C#"%>
<asp:TextBox runat="server" ID="tbSearch"></asp:TextBox>
<asp:Button runat="server" Text="Search"/>