【问题标题】:@RenderBody for javascript?用于 JavaScript 的 @RenderBody?
【发布时间】:2014-08-13 22:28:33
【问题描述】:

有没有办法在 javascript 或 javascript 库中模拟 @RenderBody()?我正在尝试启动一个新的 html/javascript 项目(无服务器端语言),并希望能够模拟 razor 中 @RenderBody() 功能的功能。

为了澄清,在 .NET MVC 项目中,您可以拥有一个包含页面“模板”的 _Layout.cshtml 文件; css/javascript 包括等。

<!-- include javascript and css -->
...
<body>
    @RenderBody()
</body>
....

您的页面内容将存在于诸如index.cshtml 之类的文件中,该文件将呈现在@RenderBody()。我可以纯粹在客户端实现类似的功能,还是需要某种服务器端语言才能实现?

谢谢!

【问题讨论】:

  • 这个问题有点含糊。您的意思是要在当前 Razor 布局文件中呈现来自端点的结果,而不是来自客户端而不是服务器?
  • 我正在寻找一种在 html/javascript 项目中模拟 @RenderBody() 功能的解决方案。没有服务器端语言。将编辑问题
  • 你最好重新考虑你的方法。 Google for "SPA" - 单页应用程序。
  • @JeremyJStarcher 我正在考虑这种方法,因为它基本上就是我想要的。我希望使用类似于上述@RenderBody() 功能的一个通用“模板”来体验多个页面。
  • 简单地设置一个具有您需要的功能/页面/视图的页面并显示/隐藏而不是尝试实际渲染要简单得多如所须。如果您真的想使用渲染方法,请使用具有内置功能的 Durandal。从头开始编码将是一项……工作。

标签: javascript asp.net-mvc razor


【解决方案1】:

你要找的答案是@RenderSection()

@RenderBody() 一样,@RenderSection() 可以从母版页上特定位置的视图中呈现代码

包括这是您希望放置代码的母版页

@RenderSection("scripts", required: false)

这个在你的页面中被调用

// your page content

@section scripts{
    //your javascript code here
}

//更新//这是一个服务器端解决方案,如果涉及到,您可以使用它

【讨论】:

  • 我正在寻找纯粹在 html/js 中的解决方案。我已经修改了这个问题,希望能更清楚。感谢您的尝试
  • 是的,我在发布后刚刚抓住了那个问题的结尾......关于@RenderBody 的事情是它是后端,所以它在客户端查看页面之前被加载到服务器上. JavaScript 是客户端脚本,因此在页面到达客户端之前运行 JavaScript 是不可能的。
  • 另外,从文件中读取是服务器端的问题。 JavaScript 只能处理客户端代码,所以不,据我所知,从文件中读取并使用 JavaScript 输出到页面的一部分是不可能的。
【解决方案2】:

我认为您正在关注客户端 MVC(或 MVVM)框架,例如 BackboneAngularKnockout

您可以查看this article on Smashing Magazine 作为起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-08
    • 2015-06-24
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    相关资源
    最近更新 更多