Search code examples
asp.net-mvcasp.net-mvc-4razor-2

Razor template containing page parts that mustache will render on client


My page contains parts that will render on the client.

The problem I'm having is that razor does not render the parts as I expect them to. For example:

<script type="x-tmpl-mustache" id="filterTemplate">
        <img id="showFilter" src="~/Content/Image/arrow.png" />
</script>

Will not render the ~ sign, only when I place img outside of the script tags will it do as expected.

This is published in different application paths so I need razor to figure out what ~ is and replace it with the application path.


Solution

  • You should use @Url.Content helper which will correctly resolve the path relative to the application root:

    <script type="x-tmpl-mustache" id="filterTemplate">
            <img id="showFilter" src='@Url.Content("~/Content/Image/arrow.png")' />
    </script>