Websharper网站has a tutorial关于将ASP.NET与Websharper集成,但它在某些方面含糊不清。我已经在我的ASP.NET MVC项目上安装了Websharper包,并按照说明的第1步进行了操作,但我对其余部分感到困惑。
对于第2步,我在哪里或如何添加要集成的Websharper应用程序?我只是在脚本文件夹中添加F#源文件并让它自动生成我需要的Javascript吗?或者我是否在单独的Websharper项目中编译并将生成的Javascript添加到ASP.NET MVC项目中?
在标题中,它特别指出与ASPX页面的集成。这是否意味着这不适用于Razor网页,这是ASP.NET MVC的默认设置?
答案 0 :(得分:4)
在Razor页面中插入WebSharper控件对于当前发布的WebSharper来说确实不容易,但我们正在努力帮助实现这一点,这将很快发布。正在进行的工作可用here。它依赖于最新的WebSharper,因此如果您想立即使用它,则需要从源代码构建它们。
以下是您需要做的事情(在我们发布WebSharper.AspNetMvc之前需要稍作修改):
如果您使用RPC和/或Sitelets:
添加到您的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()
已经在没有此控件的依赖项的情况下进行渲染。