Dot-Net

使用 F# 進行簡單的 .NET Web 開發

  • May 9, 2010

我正在尋找使用 F# 將一些 HTML 輸出到網頁。有任何想法嗎?

為了給出一些特定的“HOWTO”,我嘗試創建一個簡單的 ASP.NET MVC 應用程序,它實現了 F# 中的關鍵部分。如參考答案中所述,使用 F# 進行 Web 開發的最佳方法是創建 C# Web 應用程序並將實現實際行為的所有類型移動到 F# 庫。

儘管可以直接創建 F# Web 項目,但存在許多限制(例如,不完美的智能感知和可能的其他問題),因此aspx在 C# 中管理文件可能是一個更好的主意。

這是我所做的(使用 Visual Studio 2010):

  • 創建一個新的 C# 項目“ASP.NET MVC 2 Web 應用程序”。這將創建一個新的 C# 項目,其中包含一些初始模板和一些頁面。我將忽略處理帳戶的頁面(您可以將其刪除)。
  • 中有一個HomeController.cs文件Controllers,其中包含首頁的功能(載入數據等)。您可以刪除該文件 - 我們將在 F# 中重新實現它。
  • 添加新的“F# 庫”項目並添加對 ASP.NET MVC 程序集的引用。其中有很多(請參閱 C# 項目),但最重要的是,您將需要System.Web.Mvc.dll以及該項目引用的其他內容(F# 編譯器會告訴您需要哪些)。
  • 現在,將下面的程式碼添加到Module1.fs- 這實現了原來HomeController用 C# 編寫的 .

原始碼如下所示:

namespace MvcApplication1.Controllers

open System
open System.Web.Mvc

[<HandleError>]
type HomeController() =
 inherit Controller()

 member x.Index() =
   x.ViewData.["Message"] <- "Welcome from F#"
   x.View() :> ActionResult

 member x.About() : ActionResult =
   x.View() :> ActionResult

這只是對原始 C# 程式碼的重新實現(創建單個類)。我使用了原始的 C# 命名空間,以便 MVC 框架可以輕鬆找到它。

C# 項目中的文件Views\Home\Index.aspx定義使用者界面並使用您從 F# 項目中設置到ViewData字典的數據。

這個“HOWTO”展示瞭如何使用 F# 編寫 ASP.NET MVC 應用程序,但是創建一個普通的 WebForms 應用程序的步驟基本相同 - 創建一個 C# Web 應用程序並將實現類移動到 F# 庫中,將被引用來自 C# Web 應用程序(實際上不會包含太多 C# 程式碼)。

引用自:https://stackoverflow.com/questions/2754731