:
- (BuildProviders):
<system.web>
<compilation debug="true" targetFramework="4.5">
// Start (Build Provider Information)
<buildProviders>
<add extension=".inc"
type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
</buildProviders>
// End (Build Provider Information)
</compilation>
</system.web>
Runtime , INC . HTML, , -, MVC .
:
public class CustomViewEngine : RazorViewEngine
{
public CustomViewEngine()
{
PartialViewLocationFormats = new[]
{
"~/Views/{1}/{0}.cshtml",
"~/Views/{1}/{0}.vbhtml",
"~/Views/Shared/{0}.cshtml",
"~/Views/Shared/{0}.vbhtml",
"~/Include/{0}.inc"
};
FileExtensions = new[]
{
"cshtml",
"vbhtml",
"inc",
};
}
}
:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
RazorCodeLanguage.Languages.Add("inc", new CSharpRazorCodeLanguage());
WebPageHttpHandler.RegisterExtension("inc");
var viewEngine = new CustomViewEngine();
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(viewEngine);
}
}
\Views\Web.config \Include\Web.Config, , .
\Include\Test.inc, :
<div>Some Data</div>
:
@Html.Partial("Test")
( )
@{Html.RenderPartial("Test");}
INC MVC-ized. , MVC .. , .cshtml.
Bonus
RazorViewEngine, \Include\*.inc \Views\Shared\*.cshtml, - @Html.Partial("<include file>"), , . ( ), include, .