[Mono-bugs] [Bug 500075] New: <%@Page%> Inherits doesn't support C# syntax
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri May 1 11:28:16 EDT 2009
http://bugzilla.novell.com/show_bug.cgi?id=500075
Summary: <%@Page%> Inherits doesn't support C# syntax
Classification: Mono
Product: Mono: Class Libraries
Version: SVN
Platform: x86-64
OS/Version: openSUSE 11.1
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Sys.Web
AssignedTo: mhabersack at novell.com
ReportedBy: jpryor at novell.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Many existing ASP.NET MVC applications (such as NerdDinner) use C# syntax to
declare a generic base type within the <%Page Inherits%> attribute. For
example, from NerdDinner/Views/Dinners/Index.aspx:
<%@ Page
Inherits="System.Web.Mvc.ViewPage<NerdDinner.Helpers.PaginatedList<NerdDinner.Models.Dinner>>"
Language="C#" MasterPageFile="~/Views/Shared/Site.Master" %>
The problem is that Mono's ASP.NET doesn't properly parse
ViewPage<PaginatedList<Dinner>>, and instead "falls back" to using the
non-generic ViewPage type. This results in compilation errors later in the
page, e.g.
<% foreach (var dinner in Model) { %>
results in:
Compiler Error Message: CS1579: foreach statement cannot operate on
variables of type `object' because it does not contain a definition for
`GetEnumerator' or is not accessible
The workaround is to change the <%@Page Inherits="..."%> syntax to use
Reflection syntax, for example:
<%@ Page
Inherits="System.Web.Mvc.ViewPage`1[[NerdDinner.Helpers.PaginatedList`1[[NerdDinner.Models.Dinner,
NerdDinner]], NerdDinner]]" Language="C#"
MasterPageFile="~/Views/Shared/Site.Master" %>
This has the unfortunate side effect that all existing ASP.NET code needs to be
touched in order to be hosted on Mono.
--
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the mono-bugs
mailing list