물론이
using Orchard.UI.Resources;
public class ResourceManifest : IResourceManifestProvider
{
public void BuildManifests(ResourceManifestBuilder builder)
{
var manifest = builder.Add();
manifest.DefineScript("MyScript")
.SetUrl("myscript.min.js", "myscript.js") // Or just use one
.SetVersion("1.0.0")
.SetDependencies("jQuery");
}
}
는 그런 다음에 자원 관리자와 MyScript
을 포함하여 FilterProvider
public class MyScriptFilter : FilterProvider, IResultFilter
{
private readonly IResourceManager resourceManager;
public MyScriptFilter(IResourceManager resourceManager)
{
this.resourceManager = resourceManager;
}
public void OnResultExecuting(ResultExecutingContext filterContext)
{
if (!(filterContext.Result is ViewResult) || !UI.Admin.AdminFilter.IsApplied(filterContext.RequestContext))
{
// Control where when it should and shouldn't appear, like exclude admin and any non-ViewResult
return;
}
this.resourceManager.Require("script", "MyScript");
}
public void OnResultExecuted(ResultExecutedContext filterContext)
{
}
}
가 컴파일하는 경우이 그렇게 확실하지 테스트하지 않았습니다 ,하지만 트릭을해야합니다.
솔루션을 사용할 수 있지만 특히 jQuery에 의존하는 스크립트를 선언하는 방법은 스크립트가 대개보기에 속하는 것을 포함하여 정확하게 맞습니다. 따라서 두 번째 부분을 반드시 추천하지는 않습니다. if if 사이트 제작자는 자신의 테마에서 다른 스크립트를 사용하는 다른보기로보기를 바꾸시겠습니까? –
레이아웃에 Resource를 간단히 포함시킬 수 있습니다 : Script.Require ("MyScript"); – mberacochea