【问题标题】:How to Supply a Dynamically Built MVC3 MasterPage如何提供动态构建的 MVC3 MasterPage
【发布时间】:2012-02-10 06:52:38
【问题描述】:

我需要使用静态 html 页面作为 MVC3 razor 母版页。

它需要能够将控制器的razor-built view 注入到静态html页面上的指定span标签中。

我该怎么做:

  1. 加载静态html
  2. 将静态 html 字符串解析到我需要注入 razor-view 的位置
  3. 注入剃刀视图。

这就是原因——我们的客户希望能够(每天)从他们的 CMS 发布静态 html,并让应用程序选择“模板”并将其用于他们网站的动态部分。他们对 .NET 和 MVC3 没有任何了解,我无法让他们以任何方式与 .NET 等进行交互。

有什么想法吗?

谢谢。

【问题讨论】:

  • 只需使用普通的 MVC3 布局和视图。老实说,如果我们更多地了解您为什么要这样做,我们可能会提供更好的帮助。
  • 刚刚做了。感谢您的建议
  • .html 中是否只有一个部分需要注入控制器操作结果?或者您是否需要将动态内容注入到 html 的多个部分?

标签: asp.net-mvc-3


【解决方案1】:

假设您只需要将视图注入 HTML 的一部分,您可以将 HTML 分成“之前”和“之后”部分。创建一个包含“之前”、“中间”和“之后”部分的 Layout.cshtml。 before & after 是您从 .html 解析的部分,middle 是您的 Razor 视图的结果。

【讨论】:

    【解决方案2】:

    静态页面不由服务器执行,因此如果需要将动态页面导入静态页面,最好的办法是使用 iframe 或 javascript 将从 mvc3 站点生成的 html 放在页面。

    你可以很容易地使用 jQuery 做到这一点:

    $(function() {
        $("#ContentFromMVCSite").load("http://mysite.com/url/to/mvc/view");
    });
    
    <div id="ContentFromMVCSite"></div>
    

    此代码将从 mvc 站点下载 html 输出并将其放在 div 中。欲了解更多信息see the documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 2017-12-05
      相关资源
      最近更新 更多