我有一个View组件,在Razor(.cshtml)文件中包含一些jQuery.脚本本身非常特定于视图(处理一些第三方库的配置),因此我想将脚本和HTML保存在同一个文件中,以便组织起见.
问题是脚本没有在_Layout Scripts部分中呈现.显然,这就是MVC处理与View Components有关的脚本的方式.
我可以通过在Razor文件中使用脚本来解决它,但不能在Scripts部分内部.
但后来我遇到依赖问题 - 因为在引用库之前使用了jQuery(对库的引用位于_Layout文件的底部附近).
除了将jQuery的引用作为Razor代码的一部分包含在内之外,还有任何巧妙的解决方案吗(这会阻碍HTML呈现组件的位置)?
我目前不在代码的前面,但是如果有机会,如果有人需要查看它以更好地理解它,我当然可以提供它.
我知道使用常规过滤器可以传递如下参数:
[Filter(param="value")]
public ActionResult Action()
{
return View();
}
public class Filter : ActionFilterAttribute
{
public string param { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// do something with your parameter...
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个服务过滤器:
// MyCustomFilter.cs
namespace MyNamespace.Filters
{
public class MyCustomFilter : ActionFilterAttribute
{
public string param { get; set; }
// The services I'm injecting.
private ILogger _logger;
private IM3ObjectRepository _repo;
public MyCustomFilter(ILogger<MyCustomFilter> logger, IM3ObjectRepository repo)
{
_logger = logger;
_repo = repo;
}
public …Run Code Online (Sandbox Code Playgroud)