3

Websharper 网站上有一个关于将 ASP.NET 与 Websharper 集成的教程,但它在某些方面含糊不清。我已经在我的 ASP.NET MVC 项目上安装了 Websharper 包并按照说明的第 1 步进行操作,但我对其余部分感到困惑。

对于第 2 步,我在哪里或如何添加我想要集成的 Websharper 应用程序?我是否只需在脚本文件夹中添加 F# 源文件并让它自动生成我需要的 Javascript?还是我让它在一个单独的 Websharper 项目中编译并将生成的 Javascript 添加到 ASP.NET MVC 项目中?

在标题本身中,它特别提到了与 ASPX 页面的集成。这是否意味着这不适用于 Razor 网页,这是 ASP.NET MVC 的默认设置?

4

1 回答 1

4

使用当前发布的 WebSharper 在 Razor 页面中插入 WebSharper 控件确实并不容易,但我们正在开发帮助工具来促进这一点,这将很快发布。正在进行的工作可在此处获得。它依赖于最新的 WebSharper,因此如果您想立即使用它,则需要从源代码构建两者。

以下是您需要做的事情(在我们发布 WebSharper.AspNetMvc 之前可能会稍作更改):

  • 从您的 Web 项目中引用 WebSharper、WebSharper.AspNetMvc 和您的 WebSharper 项目。
  • 如果您使用 RPC 和/或 Sitelets:

    • 如您链接的文档中所示,将相关模块添加到您的 Web.config;
    • 添加到您的FilterConfig.RegisterGlobalFilters

      filters.Add(new WebSharper.AspNetMvc.Filter());
      
  • 要使用客户端控件:

    • 在您的主要剃须刀布局中,在 head 标签内,添加以下内容:

      @WebSharper.AspNetMvc.ScriptManager.Head()
      

      这将包含您的控件所需的 css 和 javascript 标签。

    • 要在视图中插入控件,首先在视图顶部创建它:

      @{
          var myControl = WebSharper.AspNetMvc.ScriptManager.Register(new MyControl());
      }
      

      然后您可以将其插入到视图中,例如:

      <div>
          <h1>My control:</h1>
          @myControl
      </div>
      

      在视图开始呈现之前创建控件很重要,否则ScriptManager.Head()在没有此控件的依赖项的情况下已经呈现。

于 2015-05-14T18:05:11.263 回答