Raj Kumar
Raj Kumar

Reputation: 7126

ResolveUrl not working inline

I am getting the error on the below code in asp.net 4.0

<script type="text/javascript" src='<%#=ResolveUrl("~/Scripts/jquery-1.4.1.js")%>'></script>

Error Message: CS1525: Invalid expression term '='

I am using this code in Site.Master in head tag

Upvotes: 11

Views: 17095

Answers (2)

Fables Alive
Fables Alive

Reputation: 2810

You can use ResolveUrl with Eval like this. No external code needed.

<img src='<%# ResolveUrl(Eval("FILE_URL").ToString()) %>' alt=""
     style="width:50px;height:50px"/>

Upvotes: 0

rsbarro
rsbarro

Reputation: 27339

You can't use <%# and <%= at the same time. Try it like this:

<script type="text/javascript" src='<%= ResolveUrl("~/Scripts/jquery-1.4.1.js")%>'></script>

EDIT
If you are getting an error that states:

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

when you try to use <%= ResolveUrl(..., it is because something in your code is attempting to add controls to your header control in Site.Master. If that is the case, switch the script tag to read:

<script type="text/javascript" src='<%# ResolveUrl("~/Scripts/jquery-1.4.1.js")%>'></script>

and make sure you call the DataBind() method on the header tag at some point (for example, from the Page_Load method for Site.Master):

public partial class SiteMaster : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Page.Header.DataBind();
    }
}

Upvotes: 34

Related Questions