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之前,可能会稍作更改):
FilterConfig.RegisterGlobalFilters
中:filters.Add(new WebSharper.AspNetMvc.Filter());
@WebSharper.AspNetMvc.ScriptManager.Head()
这将包含控件所需的css和javascript标记。
@{
var myControl = WebSharper.AspNetMvc.ScriptManager.Register(new MyControl());
}
然后可以将其插入视图中,例如:
<div>
<h1>My control:</h1>
@myControl
</div>
在视图开始呈现之前创建控件很重要,否则
ScriptManager.Head()
将已经在没有控件依赖的情况下被呈现。