您如何将 Websharper 与现有的 ASP.NET MVC 项目集成?
How do you integrate Websharper with an existing ASP.NET MVC project?
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 的默认设置?
使用当前发布的 WebSharper 确实不容易在 Razor 页面中插入 WebSharper 控件,但我们正在开发帮助程序来促进这一点,很快就会发布。正在进行的工作可用 here。它依赖于最新的 WebSharper,因此如果您想立即使用它,您需要从源代码构建两者。
接下来您需要执行以下操作(在我们发布 WebSharper.AspNetMvc 之前可能会稍作更改):
- 从您的 Web 项目中引用 WebSharper,WebSharper.AspNetMvc 和您的 WebSharper 项目。
如果您使用 RPC and/or 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());
}
然后就可以在视图中插入了,eg:
<div>
<h1>My control:</h1>
@myControl
</div>
在视图开始呈现之前创建控件很重要,否则 ScriptManager.Head()
已经在没有此控件依赖项的情况下呈现。
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 的默认设置?
使用当前发布的 WebSharper 确实不容易在 Razor 页面中插入 WebSharper 控件,但我们正在开发帮助程序来促进这一点,很快就会发布。正在进行的工作可用 here。它依赖于最新的 WebSharper,因此如果您想立即使用它,您需要从源代码构建两者。
接下来您需要执行以下操作(在我们发布 WebSharper.AspNetMvc 之前可能会稍作更改):
- 从您的 Web 项目中引用 WebSharper,WebSharper.AspNetMvc 和您的 WebSharper 项目。
如果您使用 RPC and/or 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()); }
然后就可以在视图中插入了,eg:
<div> <h1>My control:</h1> @myControl </div>
在视图开始呈现之前创建控件很重要,否则
ScriptManager.Head()
已经在没有此控件依赖项的情况下呈现。