【发布时间】:2011-05-12 03:09:21
【问题描述】:
与 Razor 一起使用时,我无法使用 Html Helpers。所述助手在使用 Web 表单视图引擎的 MVC 2 中运行良好。但不是剃须刀。我在运行时得到的错误是:
Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
Source Error:
Line 1: @using Wingspan.Web.Mvc;
Line 2: @Html.IncrementalMenu(MenuBlock.Site)
扩展显示详细编译器输出显示:
d:\...\Views\Shared\MenuTop.cshtml(2,1): error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
d:\...\Views\Shared\MenuTop.cshtml(2,7): error CS1503: Argument 1: cannot convert from 'void' to 'System.Web.WebPages.HelperResult'
这表明 razor 不喜欢我的助手 IncrementalMenu 返回 void(在 MVC 2 Web 表单引擎视图中工作正常)。
在编译时我没有收到任何错误,尽管代码行 (@Html.IncrementalMenu(...)) 带有红色下划线并带有以下消息:
Cannot implicitly convert type 'void' to 'object'
IncrementalMenu 位于 Wingspan.Web.Mvc 命名空间中。其签名如下:
public static void IncrementalMenu(this HtmlHelper html, MenuBlock menuBlock)
{
// Uses an HtmlTextWriter to render a menu from the sitemap
}
如果我知道出了什么问题,我会很震惊......
PS:
MenuBlock 参数只是一个枚举,用于标识菜单应如何呈现。不要执着于此,因为这很好。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 razor