Skip to main content

ASP.Net DotNetNuke Page Header Head/Meta Tags

Adding meta, css and script tag to the header proved to be too much trial and error. And searching online results in no clear solution either.

My custom requirement was for DotNetNuke Module to add css and script tag at page level head tag not inside the body tag.

Here is the simple solution:
In my view.ascx.vb file, I have added a prerender block of script:


Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.PreRender


Try
    Dim htmlHeadTags As String
    Dim htmlHeadCtrl As LiteralControl = New LiteralControl

    htmlHeadTags = "<meta name=""viewport"" content=""initial-scale=1.0, user-scalable=no"" />" _
& "<link href=""http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.12/themes/flick/jquery-ui.css"" rel=""stylesheet"" type=""text/css""/>" _
& "<link id=""ServiceCenterCSS"" rel=""stylesheet"" type=""text/css"" href=""" & ResolveUrl("~/DesktopModules/ServiceCenter/ServiceCenter.css") & """ />" _
& "<script src=""http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.12/jquery-ui.js""></script>"

    htmlHeadCtrl.Text = htmlHeadTags

    Dim header As Web.UI.HtmlControls.HtmlHead
    header = TryCast(Me.Page.Header, Web.UI.HtmlControls.HtmlHead)
    If header IsNot Nothing Then
    
    header.Controls.Add(htmlHeadCtrl)
    End If

    Catch exc As Exception 'Module failed to load

        
        ProcessModuleLoadException(Me, exc)
    End Try
End Sub



Note:
  1. I have added script later than style-sheets as its the recommended way for rendering the style-sheets and JavaScript.
  2. Also note that if you need to use the double quotes within the "...", you just use two double quotes to avoid the compilation or error message.

Please add your thoughts if you use similar or better approach to this requirement.

Thanks,
Wasay

Comments

Popular posts from this blog

Completed UiPath - RPA Developer Advance Training

After a month of training, with late nights and weekends I have completed the UiPath RPA Developer Advance Training.

The Level 1 Foundation Training pretty much covered all the basics of Desktop studio and workflows, only draw back was I started with the default foundation course which was for 2016, and all document reference links where pointing to 2016 version. I didn't understand it during the foundation training and kept switching to 2018 version document/page.

Only after completing the Foundation course that I realized, I was suppose to have started with the 2018 version of Level 1 Foundation Training, but as it was optional I didn't have to retake the 2018 version, the 2016 was good enough for moving to level 2.

The Level 2 Orchestrator 2018.3 Training as good. It gave good understanding of Queue's, Jobs, and schedules and I was able to complete the level two much faster then the level 1.

The Level 3 UiPath Advanced Training was bit tough as it involved the assignme…

KB 294807 - IIS Server - PHP FastCGI 500 Error 0xfffffffe

Resolved issue today of IIS Server - PHP FastCGI 500 Error 0xfffffffe by deleting "Windows Temp" folder files.

We used Cygwin to customize some permissions of "Windows Temp" folder and after few hours the website stopped working.

The search online was giving all kinds of different solution except what I was looking for.

I was hoping the stackoverflow will have answers but even this post didn't cover the issue I was running into.
https://stackoverflow.com/questions/15302080/fastcgi-500-failure

Restarting the IIS didn't work, but deleting temp files cleared the issue, but now the problem is how long before the site will go down again?

Hope the issue is resolved for ever, if not; I will update this post later.

Grow with Google Scholarship / Udacity

Grow with Google Scholarship / Udacity

Today on Jan 11, 2018, I have received the Grow with Google Scholarship.

I am really excited because, previously I had joined Udacity to complete a Nano Degree, but due to price and family priorities, I had to abandon that goal.

Today, I feel like I am getting a second chance to give it another shot to completing my Nano Degree.