我正在尝试使用带有ServiceStack Razor Views的Kendo UI MVC包装器。
我按照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名称空间添加到正确的部分)
它现在抛出错误:
'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()。姓名(“生日”)粘贴到我的视图并尝试编译,根据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>
答案 0 :(得分:1)
注意:以下内容无意反映ServiceStack或KendoUI的负面意见。他们都惊人。这些产品本质上是不相容的。这个问题的目的是调查这种性质的可行性
仔细查看了Kendo.Mvc的源代码后,我得出结论,Kendo.Mvc不适合与ServiceStack Razor一起使用。
这是因为:
我会使用像StackOverflow Q&A这样的方法来编写我自己的助手。
答案 1 :(得分:1)
我遇到了同样的问题,但是通过将以下命名空间添加到我的web.config
来解决了这个问题。
<add namespace="Kendo"/>
<add namespace="Kendo.Mvc"/>
<add namespace="Kendo.Mvc.Extensions"/>
<add namespace="Kendo.Mvc.Ui"/>
我认为这里的关键点是add namespace="Kendo.Mvc.Ui"
答案 2 :(得分:1)
使用
更新Views文件夹中的web.configHttpPost httpPost = new HttpPost(fullFormActionUrlWithServerAndPort);
List <NameValuePair> nvp = new ArrayList <NameValuePair>();
nvp.add(new BasicNameValuePair("name-of-the-user-field", "your-user-name"));
nvp.add(new BasicNameValuePair("name-of-the-pass-field", "your-password"));
httpPost.setEntity(new UrlEncodedFormEntity(nvp));
答案 3 :(得分:-1)
您需要在视图文件夹中的web.config文件中添加相关的命名空间,而不是在顶层文件夹中的主web.config文件中添加。请仔细阅读说明书。