我正在尝试在F#中编写ASP.NET MVC视图(WebForms视图引擎).我已经可以编写常规的ASP.NET WebForms ASPX,它可以正常工作,例如
<%@ Page Language="F#" %>
<%
for i in 1..2 do %>
<%=sprintf "%d" i %>
Run Code Online (Sandbox Code Playgroud)
所以我假设我的web.config中的所有内容都已正确设置.
但是,当我从ViewPage继承页面时:
<%@ Page Language="F#" Inherits="System.Web.Mvc.ViewPage" %>
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
编译器错误消息:FS0442:重复方法.抽象方法'ProcessRequest'与继承类型中的抽象方法具有相同的名称和签名.
问题似乎是由F#CodeDom提供程序生成的这段代码:
[<System.Diagnostics.DebuggerNonUserCodeAttribute>]
abstract ProcessRequest : System.Web.HttpContext -> unit
[<System.Diagnostics.DebuggerNonUserCodeAttribute>]
default this.ProcessRequest (context:System.Web.HttpContext) =
let mutable context = context
base.ProcessRequest(context) |> ignore
Run Code Online (Sandbox Code Playgroud)
当我将Page指令更改为使用C#时,生成的代码为:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public new virtual void ProcessRequest(System.Web.HttpContext context) {
base.ProcessRequest(context);
}
Run Code Online (Sandbox Code Playgroud)
这当然工作正常,AFAIK在语义上与生成的F#代码不同.
我正在使用.NET 4.0.30319.1(RTM)和MVC 2 RTM
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |