1

在 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 - 我认为他们只是使用它)。

它可能是什么?

4

3 回答 3

2

web.config 文件中有一个默认主题设置,应用程序会检查每个页面的主题,如果该页面没有设置主题,它将使用默认主题。默认主题是 DarkOrange。该行是:

<pages theme="DarkOrange" validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">

应该在59号线附近...

您可以删除这一行(只是主题属性,而不是整行),这应该会阻止它在没有设置主题的页面上使用它,或者......我不确定你使用的是什么主题......或者将您在母版页中创建的新页面包装起来,使其看起来像您网站的其余部分。我认为还有一种方法可以在代码隐藏中为页面设置主题,但不确定您想要做什么。

于 2011-09-19T12:15:40.710 回答
1

链接元素可能由代码隐藏添加到页眉控件中。您是否检查CheckoutCompleted.aspx.cs了对该项目添加到标题的位置的任何引用。如果它不在 中CheckoutCompleted,我会推测它可能会在页面层次结构中的某个点呈现(例如,CheckoutCompleted继承自什么?)。

于 2011-09-05T15:22:08.300 回答
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);
}
于 2011-09-05T15:28:46.187 回答