gpt4 book ai didi

c# - Kendo UI MVC 和 ServiceStack Razor - 没有 HtmlHelpers

转载 作者:行者123 更新时间:2023-11-30 12:31:17 26 4
gpt4 key购买 nike

我正在尝试将 Kendo UI MVC 包装器与 ServiceStack Razor Views 一起使用。

我已按照 Kendo UI Instructions 的说明进行操作希望它是直截了当的。

@HTML。在我的 cshtml 页面中没有显示 Kendo 扩展。

谁能提供一些指导?

  • 我按照 Atanas Korchev 的要求更新了这些部分

    <compilation debug="true" targetFramework="4.5">
    <!-- Service Stack Razor View Build Provider -->
    <buildProviders>
    <add extension=".cshtml" type="ServiceStack.Razor.CSharpRazorBuildProvider, ServiceStack.Razor, Version=2.1.*, Culture=neutral" />
    </buildProviders>
    <assemblies>
    <add assembly="ServiceStack"/>
    <add assembly="ServiceStack.Razor"/>
    <add assembly="ServiceStack.Text" />
    <add assembly="Kendo.Mvc"/>
    <add assembly="WebApplication1" />
    <!-- MVC 3 Added at Atanas Korchev's request -->
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </assemblies>
    </compilation>
  • (出于某种原因,它拒绝显示代码示例,但我也将 Mvc namespace 添加到了正确的部分)

它现在抛出错误:

'ServiceStack.Html.HtmlHelper<dynamic>' does not contain a definition for 'Kendo' and the best extension method overload 'Kendo.Mvc.UI.HtmlHelperExtension.Kendo(System.Web.Mvc.HtmlHelper)' has some invalid arguments}
  • 我将 @(Html.Kendo().DatePicker().Name("Birthday")) 粘贴到我的 View 中并尝试编译,按照 Atanas 的要求得到这个错误

    <
  • 我认为如果不更改一些源代码来处理 ServiceStack 的 HtmlHemlper,就不可能有解决方案吗?

原始 Web.config

<?xml version="1.0"?>

<configuration>

<!-- Separate config section for each at the bottom of web.config -->
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>

<system.web>
<compilation debug="true" targetFramework="4.5">
<!-- Service Stack Razor View Build Provider -->
<buildProviders>
<add extension=".cshtml" type="ServiceStack.Razor.CSharpRazorBuildProvider, ServiceStack.Razor, Version=2.1.*, Culture=neutral" />
</buildProviders>
<assemblies>
<add assembly="ServiceStack"/>
<add assembly="ServiceStack.Razor"/>
<add assembly="ServiceStack.Text" />
<add assembly="Kendo.Mvc"/>
<add assembly="WebApplication1" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
</system.web>

<!-- Register ServiceStack to listen on root path of web server -->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true" />
</handlers>
</system.webServer>


<appSettings>
<!-- Enables ServiceStack.Razor pages -->
<add key="webPages:Enabled" value="false" />
</appSettings>

<!-- ServiceStack.Razor Config -->
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="ServiceStack.Razor.ViewPage">
<namespaces>
<!-- Make these namespaces available to razor views-->
<!-- Required for ServiceStack -->
<add namespace="ServiceStack.Html" />
<add namespace="ServiceStack.Razor" />
<add namespace="ServiceStack.Text" />

<!-- Business -->
<add namespace="WebApplication1" />

<!-- Kendo UI MVC Wrappers -->
<add namespace="Kendo.Mvc.UI" />
</namespaces>
</pages>
</system.web.webPages.razor>

</configuration>

最佳答案

注意:以下内容并不代表对 ServiceStack 或 KendoUI 的负面意见。他们都了不起。这些产品本质上是不相容的。这个问题的目的是调查这种性质的可行性


在详细查看了 Kendo.Mvc 的源代码后,我得出结论,Kendo.Mvc 不适合也不适合与 ServiceStack Razor 一起使用。

这是因为:

  • ServiceStack 的 Razor 不依赖于 System.Web.Mvc,Kendo.Mvc 重新引入它
  • ServiceStack 有自己的类实现,例如 HtmlHelper、ViewPage 和 Kendo.Mvc 依赖于 System.Web.Mvc 等价物的其他关键类。
  • 我还没有找到一种明确的方法来轻松分离 Kendo.Mvc 对 MVC Controller (ServiceStack razor View 不使用)的依赖性。希望能够简单地以类型安全的方式在 razor 中配置小部件,以呈现为 html,并绑定(bind)到模型。

我将求助于编写自己的助手,使用类似这样的东西 StackOverflow Q&A作为一种方法。

关于c# - Kendo UI MVC 和 ServiceStack Razor - 没有 HtmlHelpers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com