Websharper网站has a tutorial关于将ASP.NET与Websharper集成在一起,但是在某些方面含糊不清。我已经在ASP.NET MVC项目上安装了Websharper软件包,并按照说明的步骤1进行操作,但是我对其余的内容感到困惑。

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

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

最佳答案

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

然后,您需要执行以下操作(在发布WebSharper.AspNetMvc之前,可能会稍作更改):

  • 参考WebSharper,WebSharper.AspNetMvc和Web项目中的WebSharper项目。
  • 如果您使用RPC和/或Sitelet:
  • 如链接文档中所示,将相关模块添加到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()将已经在没有控件依赖的情况下被呈现。
  • 10-08 01:20