在nopCommerce解决方案中,我们需要用一个只显示消息的非常简单的新页面替换现有的ASP.NET页面。我们的新ASP.NET页面根本没有任何与nopCommerce相关的参考,没有任何代码,没有什么能给我一个提示,说明为什么会发生以下情况:
自动将一行代码插入到呈现的HTML中(在本例中为指向默认主题css文件的链接)。
这是新ASP.NET文件的代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckoutCompleted.aspx.cs" Inherits="CheckoutCompleted" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Shop</title>
</head>
<body>
<form id="form1" runat="server">
<div>Your order has now been completed.</div>
</form>
</body>
</html>
这将呈现给浏览器:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Shop</title>
<link href="App_Themes/DarkOrange/styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<form name="form1" method="post" action="CheckoutCompleted.aspx" id="form1">
<div><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTQwMDkzNTAzN2Rk4txlLxJclpkuKfo1dNvs77An124dQqbJKyMfrIgvgaY=" /></div>
<div>Your order has now been completed.</div>
</form>
</body>
</html>
CheckoutCompleted.cs(我们自己的,新的)背后的代码如下所示:
public partial class CheckoutCompleted : System.Web.UI.Page
{
}
执行在Page_Load中设置的断点处停止,因此引用了正确的.cs。
所以某些机制添加了一个新行。我检查了web.config的提示,但我想我对一些很酷的ASP.NET功能一无所知(独立于nopCommerce - 我认为他们只是用它了)。
它可能是什么?
答案 0 :(得分:2)
web.config文件中有一个默认主题设置,应用程序排序检查主题的每个页面,如果该页面没有主题集,则它将使用默认主题。默认主题是DarkOrange。该行是:
<pages theme="DarkOrange" validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
应该在第59行附近......
你可以删除这一行(只是主题属性,而不是整行),这应该阻止它在没有主题设置的页面上使用它或者...我不确定你正在使用什么主题。 ..或者在主页面中包装您创建的新页面,使其看起来像您网站的其余部分。我认为还有一种方法可以在代码隐藏中为页面设置主题,但不确定你想要做什么。
答案 1 :(得分:1)
链接元素很可能通过代码隐藏添加到页眉控件中。您是否已检查CheckoutCompleted.aspx.cs
是否有关于该项目添加到标题的位置的任何参考。如果它不在CheckoutCompleted
中,我会认为它可能会在页面层次中的某个点呈现(例如CheckoutCompleted
从哪个域继承?)。
答案 2 :(得分:1)
也许在代码隐藏中?
来自aspdotnetfaq:
protected void Page_Init(object sender, EventArgs e)
{
HtmlLink css = new HtmlLink();
css.Href = "css/fancyforms.css";
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
Page.Header.Controls.Add(css);
}