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

前端 未结 7 1260
没有蜡笔的小新
没有蜡笔的小新 2021-02-12 15:24

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:56

    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:00

    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 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)
  • 2021-02-12 16:16

    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:19

    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 want to extend the answer of "Suvendu Shekhar Giri". If you have many pages that does not means to render any html and just write their reponse at stream,i.e for ajax call. Place all such kind of pages into a single folder and add web.config in this folder. Add the following tag in this web.config file

    pages styleSheetTheme="" theme=""

    Hope this will help .

    0 讨论(0)
提交回复
热议问题