简体   繁体   中英

Sharing ASP.NET MVC partial views between projects

What is the best way to share a common Partial View between applications? I've created a separate assembly containing my Partial View in an ascx file, some scripts that go with that view and an HtmlHelper extension method to make creating the partial view easier. However, when referencing that assembly from an ASP.NET MVC application, it can't find the partial view as the ascx file is not copied as well. Also, what is the best way of including the attached scripts with the application? The only way I can see at the moment is to copy the relevant files to the new application.

A nice question indeed.

I would suggest avoiding ascx files and generating HTML manually in your HTML helpers. TagBuilder class does a great deal of help here.

This post discusses how to embed a view in a DLL and render it from a different project. I guess it'll work for partials as well, but I haven't tried it.

This is an ongoing issue even with WebForms. Sharing this stuff is not easy.

My prefered approach now is to create my controls either as mvc WebControls or as jQuery plugins. That way I can pass around a versioned DLL or script file.

I lean heavily towards the WebControls solutions because, like I said, I can version it and put it in the company infrastructure framework.

I then (only) use PartialViews to render the webcontrols and add some basic flair, markup or content.

Our approach with WebForms has been to create an IIS virtual directory for shared user controls. Does this approach work with MVC?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM