【问题标题】:ASP.NET MVC 3: can I combine C# Razor Views with F# Controllers?ASP.NET MVC 3:我可以将 C# Razor 视图与 F# 控制器结合使用吗?
【发布时间】:2011-05-04 13:09:37
【问题描述】:

我认为这是一个直截了当的问题,我认为答案很有可能是“是”(虽然混合语言项目通常是不可能的,但在我看来,视图引擎得到了特殊处理)。我知道我自己也可以很容易地尝试一下,但是为了记录,为了节省一些时间,我想知道这种组合是否可行(我自己还没有使用过 ASP.NET MVC 或 Razor,我正在考虑一个新项目的选择)。

编辑:我对这种组合在单个项目中是否可行特别感兴趣。或者更具体地说,使用这种组合是否有任何功能损失(即使两个项目设置是要走的路)。

【问题讨论】:

  • 我猜不是,但这可能是 IDE 的功能,而不是 MVC。
  • 斯蒂芬,我已经按照 Tomas 的描述完成了这项工作——在单独的项目中——而且效果很好。
  • @Daniel - 你知道使用这种方法是否会丢失任何功能(就像我在对 Tomas 的评论中提出的担忧)?
  • @Stephen:我没有做任何太复杂的事情,但我没有注意到是否缺少功能——似乎我想做的一切都很好。我认为您提到的自动编译功能适用于视图,但不适用于控制器。这对我来说不是问题。
  • @Stephen:我讨厌 Web 开发的当前状态,但这是我用过的最好的设置(MVC3 + C# 视图/F# 控制器)。

标签: asp.net visual-studio-2010 asp.net-mvc-3 f# razor


【解决方案1】:

您绝对可以将 C# Razor 代码与 F# 控制器混合使用。可以在单个项目中执行此操作(通过将 Web 项目修改为使用 F#)。更简单的替代方法是创建一个标准 C# Razor Web 项目和一个单独的 F# 项目(包含模型和控制器代码)。

我创建了一个Visual Studio template,让您可以做到这一点。

不幸的是,该模板在 Visual Studio 库中尚不可用(因此您无法从“新建项目”对话框的“在线模板”选项卡中看到它)。他们的上传机制存在一些问题,我正在尝试解决,所以它应该很快就会出现。在 Visual Studio Gallery 上还有几个 Daniel Mohl 的 ASP.NET MVC 模板,但我不确定它们中是否有任何使用 Razor。

【讨论】:

  • 酷 - 我肯定会考虑使用您的模板的两个项目方法。但我也有兴趣在单个项目中执行此操作:我不确定与 ASP.NET MVC 有什么关系,但是当我过去进行传统的 ASP.NET WebForms 开发时,一个很棒的功能是每页编译所以我可以修改视图或“页面后面”,保存并重新加载页面,页面 dll 自动编译并动态部署到我正在运行的应用程序中。如果MVC甚至有这个功能,我想知道我是否会因为使用两个项目解决方案而失去它......
  • 哎呀,我得到一个 404 试图访问您的 Visual Studio 模板的链接。
  • @Stephen - 我发布了错误的链接。它现在应该可以工作了 (tomasp.net/files/FSharpEmptyWeb.vsix)。
  • @Stephen - 使用两个项目时,您需要显式重新编译项目。我不是 MVC 专家,但我认为它不支持按页面编译(主要是因为没有“页面”的概念)。它可以只选择视图(Razor)文件中的更改。但我可能错了......我也喜欢这个 - 但显然,这些天(我认为)大多数 Web 项目都是按编译方式创建的,但我不太明白为什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-02
相关资源
最近更新 更多