Using themed css files requires a header control on the page. (e.g. <head runat=“server” />)

前端 未结 7 954
[愿得一人]
[愿得一人] 2021-02-12 15:41

I\'m working on asp.net web project. When I run the project, It works correctly. But In server, I got the following error. How to solve this problem?

Using theme         


        
相关标签:
7条回答
  • 2021-02-12 15:58

    Be sure to have just the files you need in the bin folder. If you have other dlls (old versions of actual dlls varying just by their name) strange-things-may-happen.

    0 讨论(0)
  • 2021-02-12 16:04

    you need a head tag with runat="server" in the page (or master page) as below

    <head runat="server">
        <title></title>
    </head>
    
    0 讨论(0)
  • 2021-02-12 16:08

    I feel none of the answers made above can resolve the actual issue faced by user if the page is not meant to render html. In this case, the solution is - just paste following

    EnableTheming = "False" StylesheetTheme="" Theme="" 
    

    in the @Page attribute of that page.

    For example, the following source code sample:

    DownloadFile.aspx.

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DownloadFile.aspx.cs"
        Inherits="WebUI.Monitorization.DownloadFile"  EnableTheming="False" StylesheetTheme="" Theme=""   %>
    
    0 讨论(0)
  • 2021-02-12 16:11

    I got this error as a result of a really bad copy and paste error in Visual Studio 2008. I'd replaced the page with some code scraps I had meant to email to a friend.

    Despite killing all the contents of the aspx page, it threw no other errors.

    0 讨论(0)
  • 2021-02-12 16:18

    For me the cause was missing the PrecompiledApp.config file on the live server since I pre-compile sites before uploading.

    0 讨论(0)
  • 2021-02-12 16:20

    I have tried all the suggested things with out finding a solution.

    I am just needing a dummy page placeholder for calling LoadControl with a UserControl. I tried setting Theme and StyleSheetTheme multiple places because System.Web.UI.Page has this OnInit method:

    protected internal override void OnInit(EventArgs e) { 
        base.OnInit(e);
    
        if (_theme != null) { 
            _theme.SetStyleSheet();
        } 
    
        if (_styleSheet != null) {
            _styleSheet.SetStyleSheet();
        } 
    }
    

    I tried setting the values in OnPreInit and OnInit but that resulted in exceptions saying that I is not allowed to set those properties there. So I tried this code and found that I Theme and StyleSheetTheme where set in OnInit but not OnPreInit:

    public BaseRenderingPage()
    {
        EnableTheming = false;
        Theme = null;
        StyleSheetTheme = null;
    }
    
    protected override void OnPreInit(EventArgs e)
    {
        if (EnableTheming || Theme != null || StyleSheetTheme != null)
            throw new Exception("OnPreInit: " + EnableTheming + ", " + Theme + ", " + StyleSheetTheme);
        base.OnPreInit(e);
    }   
    
    protected override void OnInit(EventArgs e)
    {
        if (EnableTheming || Theme != null || StyleSheetTheme != null)
            throw new Exception("OnInit: " + EnableTheming + ", " + Theme + ", " + StyleSheetTheme);
        base.OnInit(e);
    }
    

    I ended solving it with this hack:

    public override string Theme
    {
        get { return null; }
        set { base.Theme = null; }
    }
    
    public override string StyleSheetTheme
    {
        get { return null; }
        set { base.StyleSheetTheme = null; }
    }
    
    0 讨论(0)
提交回复
热议问题