We are making a .Net MVC websolution that is going to be using widgets rendered as HTML.Partials(). We would like to be able for the partial view to add its dependencys in the main page views scripts tags, both css-files as well as javascript files.
Ive been trying with this code in my partial. But the js-file isnt rendered in the layout section of my page. What is wrong?
@{
var bundle = System.Web.Optimization.BundleTable.Bundles.GetRegisteredBundles()
.Where(b => b.Path == "~/bundles/jquery")
.First();
bundle.Include("~/Scripts/addtojquerybundletest.js");
}
It just seemed to be specific to my jquery bundle. It now works, I have added a widgetspecific bundle where you can add scripts to render in the main layout. The bundle also handles the adding of the same file several times (which can happen if the same widget exists several times on the same page) and only renderes it once. My solution added below, which doesnt seem to be that well documented from the searches Ive done so far.
In BundleConfig.cs:
bundles.Add(new ScriptBundle("~/widgetspecific"));
In _Layout.cshmtl:
@Scripts.Render("~/widgetspecific")
In Widget.cshtml:
@{
var bundle = System.Web.Optimization.BundleTable.Bundles.GetBundleFor("~/widgetspecific");
bundle.Include("~/Scripts/andreas.js");
}
Is anyone aware of negative aspects to this solution?
@The Kaizer, For you own answer above. In Widget.cshtml you might want to use
var bundle = System.Web.Optimization.BundleTable.Bundles.GetBundleFor("~/widgetspecific");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With