asp.net-mvc – 部分视图中的Razor部分包含
发布时间:2020-12-16 00:11:33 所属栏目:asp.Net 来源:网络整理
导读:我在_Layout.cshtml中有脚本部分: html body ... @RenderSection("FooterScript",required: false) /body/html 我查看了包含@ Html.RenderPartial(“LinksBlock”,someModel)的“Index.cshtml”. LinksBlock部分需要脚本文件“links.js”.我想从我的局部视
我在_Layout.cshtml中有脚本部分:
<html> <body> ... @RenderSection("FooterScript",required: false) </body> </html> 我查看了包含@ Html.RenderPartial(“LinksBlock”,someModel)的“Index.cshtml”. 解决方法
部分不适用于部分视图.但是你可以编写一对可以结合使用的自定义助手:
public static class HtmlExtensions { public static IHtmlString RegisteredScripts(this HtmlHelper htmlHelper) { var ctx = htmlHelper.ViewContext.HttpContext; var registeredScripts = ctx.Items["_scripts_"] as Stack<string>; if (registeredScripts == null || registeredScripts.Count < 1) { return null; } var sb = new StringBuilder(); foreach (var script in registeredScripts) { var scriptBuilder = new TagBuilder("script"); scriptBuilder.Attributes["type"] = "text/javascript"; scriptBuilder.Attributes["src"] = script; sb.AppendLine(scriptBuilder.ToString(TagRenderMode.Normal)); } return new HtmlString(sb.ToString()); } public static void RegisterScript(this HtmlHelper htmlHelper,string script) { var ctx = htmlHelper.ViewContext.HttpContext; var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext); var registeredScripts = ctx.Items["_scripts_"] as Stack<string>; if (registeredScripts == null) { registeredScripts = new Stack<string>(); ctx.Items["_scripts_"] = registeredScripts; } var src = urlHelper.Content(script); if (!registeredScripts.Contains(src)) { registeredScripts.Push(src); } } } 然后在你的_Layout.cshtml中: @Html.RegisteredScripts() 在你的部分: @{Html.RegisterScript("~/scripts/foo.js");} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 获取错误 – “@”字符后面的意外“if”关键
- 剃刀 – 我应该在哪里包含视图组件的脚本?
- 如何使用ASP.NET Repeater删除尾随逗号?
- asp.net-mvc – 使用ui-router的.NET MVC和Angular
- asp.net – 存储过程查询中的SQL注入
- asp.net-mvc – 如何扩展/架构ASP.NET MVC 3授权处理此场景
- asp.net – 如何向python中的.aspx页面提交查询
- asp.net-mvc – DisplayFor忽略html属性的原因是什么?
- asp.net-mvc-3 – Telerik MVC Grid中的自定义寻呼机
- asp.net – 找出合适的工作语言:从C#分支出来
推荐文章
站长推荐
- asp.net – 在部署时编译ASCX文件而不是首次加载
- asp.net – AJAX和FormsAuthentication,如何防止
- asp.net-mvc – viewdata中的ASP.NET MVC genric
- asp.net-mvc – RavenDB部署问题
- asp.net – 有什么功能,将帮助我重构CSS
- ASP.NET – 如何引用不在app_code中的类
- 实体框架 – EF Codefirst和RDLC Reports
- ASP.NET Core Identity获取用户id
- 确定asp.net中的转发器行数
- asp.net-web-api – IExceptionHandler的多个实现
热点阅读