Я пытаюсь кодировать представления ASP.NET MVC (механизм просмотра WebForms) в F #. Я уже могу написать обычный ASP.NET WebForms ASPX, и он работает нормально, например.Duplicate method 'ProcessRequest' в ASPX
<%@ Page Language="F#" %>
<%
for i in 1..2 do %>
<%=sprintf "%d" i %>
поэтому я предполагаю, что у меня есть все в моем web.config правильно настроенном.
Однако, когда я делаю страницу наследоваться от ViewPage:
<%@ Page Language="F#" Inherits="System.Web.Mvc.ViewPage" %>
Я получаю эту ошибку:
Compiler Error Message: FS0442: Duplicate method. The abstract method 'ProcessRequest' has the same name and signature as an abstract method in an inherited type.
Проблема, кажется, этот кусок кода, сгенерированного поставщиком 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
, когда я изменяю директиву страницы, чтобы использовать C#, сгенерированный код:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public new virtual void ProcessRequest(System.Web.HttpContext context) {
base.ProcessRequest(context);
}
который, конечно, отлично работает, и AFAIK не является семантически таким же, как сгенерированный код F #.
Я использую .NET 4.0.30319.1 (RTM) и MVC 2 RTM