我已将网站文件复制到新的WAP项目中。确保它编译并确实编译。我遇到的问题是,当我执行转换为WAP时,它无法解析.aspx页面。该错误只是说它无法解析.aspx页面。
当我查看其中一个.aspx页面时,我有这样的页面指令,但它无法识别该命名空间。这就是我用于新WAP项目的名称空间。
我的代码隐藏页面都具有名称空间Instant.Web以及项目属性设置为主要名称空间的Instant.Web。
所以当我去一个页面例如,它没有识别我的继承的Web.Attachment部分。
这是一个例子(略微修改了隐私的措辞):
SomeAspxPage.aspx :
<%@ Page Language="C#" Inherits="Instant.Web.Attachment" Codebehind="SomeAspxPage.aspx.cs" %>
<asp:Content ID="ctlContent" ContentPlaceHolderID="ctlContentPlaceHolder" runat="Server">
<Frm:Attachment ID="Attachment1" runat="server"/>
</asp:Content>
SomeaspxPage.aspx.cs
namespace Instant.Web
{
public partial class Attachment : Instant.InstantFrm.Pages.Base.UserPage
{
}
}
由于某些原因,代码隐藏中的UserPage没有显示为可以右键单击并转到源的类。不确定为什么因为该程序集肯定在这个WAP项目中,它是Instant.InstantFrm的最新程序集
答案 0 :(得分:0)
不知道它是否与您的实际案例相关,但是对于您的示例,您有一个属性Codebehind="Attachment.aspx.cs"
,它查找文件Attachment.aspx.cs,但文件的名称是SomeaspxPage .aspx.cs。通常“无法解析文件”意味着向导无法找到匹配的代码隐藏文件,也无法转换页面。
来自here的另外一条说明:
在转换项目文件之前,添加对Web的引用 Bin文件夹中存在的程序集的应用程序项目 有助于防止错误。
如果您已添加对自定义UserPage的引用,则从您的描述中不清楚。如果没有,那个程序集只是被复制到WAP项目中,它也会导致转换错误。
答案 1 :(得分:0)
尝试在项目中添加新的空白页,检查是否可以解析。
然后以小步骤添加功能,直到您获得的页面与给出错误的页面相同。
这可以让您确定问题所在。
答案 2 :(得分:0)
根据其中一条评论中的引用Warning 126 Unrecognized tag prefix or device filter 'asp'
,听起来您在CSProj文件中缺少程序集引用。
确认您在项目的References文件夹中有System.Web。
如果存在,请验证它所引用的版本(目录)是否与项目所针对的.NET版本相同。
答案 3 :(得分:0)
保存并关闭解决方案,然后重新打开它并重试。
我认为VS正在缓存某些内容并且项目需要重新加载。
答案 4 :(得分:-1)
对于WAP网站,我会完全删除ASPX布局(第一行除外),并在代码隐藏中使用Response.Write
输出内容。
除了简单性之外,这还提供了更清晰的输出和对过程的精细控制。