为什么WebView App(Android)项目中的剃刀视图无法识别模型?

时间:2015-10-25 01:22:36

标签: android razor xamarin hybrid-mobile-app

该项目是使用Xamarin for Visual Studio 2013创建的。首先,.cshtml文件无法识别@model指令。似乎没有正确配置剃刀引擎。然后我在我的项目的views文件夹中配置web.config,以便程序集的版本与我安装的程序集的确切版本匹配。

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="Ototim.Mobile.Droid" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
</configuration>

它确实有效,可以识别@model指令。但是,当我在.cshtml文件中调用Model Property时,会出现错误

  

当前上下文中不存在名称“模型”

在包含模型的每个.cshtml文件上,即使我使用@model指令声明了模型的类型,并且生成的代码后面确实包含Model属性。

@using Ototim.Mobile.Droid.Models
@model BoyKms

并生成代码。

[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorTemplatePreprocessor", "3.11.0.0")]
    public partial class RazorView : RazorViewBase
    {

    #line hidden

    #line 2 "RazorView.cshtml"
    public BoyKms Model { get; set; }

    #line default
    #line hidden
    //and so on...

部署项目仍然有效,并且在运行时没有显示错误,但是当项目变得更加复杂时,我认为如果Intellisense可以识别模型,代码将更容易。

0 个答案:

没有答案