无法将实例从System.Web.Mvc.HtmlHelper <dynamic>转换为ServiceStack.Html.HtmlHelper </dynamic>

时间:2014-04-23 18:42:32

标签: servicestack

CS1928: 'System.Web.Mvc.HtmlHelper<dynamic>' does not contain a definition for 'RenderCssBundle' and the best extension method overload 'ServiceStack.Html.Bundler.RenderCssBundle(ServiceStack.Html.HtmlHelper, string, ServiceStack.Html.BundleOptions, string)' has some invalid arguments

@Html.RenderCssBundle("~/Content/app.css.bundle", BundleOptions.MinifiedAndCombined)

在servicestack,angular,MVC5.1项目上默认安装了bundler。

我不知道为什么我收到此错误,我没有修改bundle.cs

1 个答案:

答案 0 :(得分:2)

嗯......看起来Html扩展方法存在冲突:System.Web.Mvc.HtmlHelper vs ServiceStack.Html.HtmlHelper

它们重叠并且通常很好但你可能需要指定完全限定的名字......现在我通常会建议:

@ServiceStack.Html.HtmlHelper

但是, bundler不在HtmlHelper 中。它位于一个单独的Bundle.cs文件中,该文件恰好位于ServiceStack.Html命名空间内。所以你真正想要的是:

@ServiceStack.Html.Bundler.RenderCssBundle()

作为最终检查,您可能需要确保在web.config中引用ServiceStack.Html或在视图顶部添加@using ServiceStack.Html。这是引用在web.config中的位置:

<system.web.webPages.razor>
    <host stuff="..." />
        <pages stuff="...">
            <namespaces>
                <!-- ... -->

                <add namespace="ServiceStack.Html" />

                <!-- ... -->
            </namespaces>
        </pages>
    </host>
</system.web.webPages.razor>