【发布时间】:2011-02-14 21:19:51
【问题描述】:
我有一个 C# ASP.NET MVC 项目,但我的控制器是用 F# 编写的。
由于某种原因,以下代码无法正常工作:
namespace MvcApplication8.Controllers
open System.Web.Mvc
[<HandleError>]
type ImageController() =
inherit Controller()
member x.Index (i : int) : ActionResult =
x.Response.Write i
x.View() :> ActionResult
action的参数貌似被忽略了……
导致此错误消息:
参数字典包含参数“i”的空条目 方法的不可空类型“System.Int32” 'System.Web.Mvc.ActionResult 索引(Int32)' 在 'MvcApplication8.Controllers.ImageController'。可选参数 必须是引用类型、可空类型或声明为 可选参数。
Parameter name: parameters
控制器工作正常。我知道很多人都编写了 F# MVC 代码,所以有什么想法我哪里出错了吗?
【问题讨论】:
-
我不是 F# 专家,但您能将 i 定义为 UrlParameter.Optional。
-
恐怕这会给我编译错误。我用谷歌搜索了该类型,它似乎用于路由而不是控制器。
标签: c# .net asp.net-mvc model-view-controller f#