此标记支持未在我工作的页面的移动版本中呈现的代码。如何将指令表示为C#,以便它们可以有条件地
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register TagPrefix="ComponentArt" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<%@ Register Src="Cart.ascx" TagName="Cart" TagPrefix="uc1" %>
<%@ Register Src="Search.ascx" TagName="Search" TagPrefix="uc5" %>
<%@ Register Src="Credits.ascx" TagName="Credits" TagPrefix="uc6" %>
<%@ Register Src="Menu.ascx" TagName="Menu" TagPrefix="uc3" %>
<%@ Register Src="taskspanel.ascx" TagName="TasksPanel" TagPrefix="uc6" %>
不出所料,大量不必要的脚本被加载。这不好。
如果有标记使这些注册有条件,请参阅我的文档。否则,我目前的想法是使用等价于标记的显式代码,并使其成为有条件的。
我发现从this rather old resource ScriptManager但上述标记没有明确引用js文件,所以我不知道如何映射两者之间。任何人都可以建议吗?
尝试使用superjos的回应下面我修改了页面到位引用Page.Mobile,布尔属性方便不已:
<%@ Page Language="C#" AutoEventWireup="false" EnableViewStateMac="false" CodeBehind="Forms.aspx.cs" Inherits="ASSAOHS.forms" %>
<%@ if (!Mobile) { %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register TagPrefix="ComponentArt" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<%@ Register Src="Cart.ascx" TagName="Cart" TagPrefix="uc1" %>
<%@ Register Src="Search.ascx" TagName="Search" TagPrefix="uc5" %>
<%@ Register Src="Credits.ascx" TagName="Credits" TagPrefix="uc6" %>
<%@ Register Src="Menu.ascx" TagName="Menu" TagPrefix="uc3" %>
<%@ Register Src="taskspanel.ascx" TagName="TasksPanel" TagPrefix="uc6" %>
<%@ } %>
但这会产生Parser Error Message: The server block is not well formed.
写像这样
<%@ Page Language="C#" AutoEventWireup="false" EnableViewStateMac="false" CodeBehind="Forms.aspx.cs" Inherits="ASSAOHS.forms" %>
@if (!Mobile) {
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register TagPrefix="ComponentArt" Namespace="ComponentArt.Web.UI" Assembly="ComponentArt.Web.UI" %>
<%@ Register Src="Cart.ascx" TagName="Cart" TagPrefix="uc1" %>
...
}
不会产生错误,但不会被处理; if语句和大括号只是在浏览器中传递并呈现为文本。
这让我回到选项二,使用ScriptManager将指令映射到显式代码以注册内容。任何接受者?
感谢佩德罗试图帮助,但该参考并没有帮助如何将这些控制指令表示为代码。
它看起来像我可能需要使用选项三,其中重定向到另一个页面,不包含指令。
您可以尝试[this](https://stackoverflow.com/a/4405257/4014832)后面的代码方法。 –