在没有MVC的情况下使用Razor时无法访问Linq

时间:2012-03-13 13:08:03

标签: asp.net-mvc linq razor

有没有人在没有MVC的情况下使用Razor。我正在使用http://www.fidelitydesign.net/?p=208构建的模板引擎,但我不能在Razor代码中使用任何linq查询,例如

<div>
    @Model.Person.First().Firstname
</div>

这会引发错误:

  

System.Collections.Generic.List'不包含定义   对于'First'而没有扩展方法'First'接受第一个参数   类型'System.Collections.Generic.List'可以找到(是   您缺少using指令或程序集引用

对于此示例,Model包含Person以下的列表

public class Person
{
    public string FirstName { get; set; }
}

1 个答案:

答案 0 :(得分:1)

模型是列表,因此您需要First模型而非PersonFirst返回Person类的实例:

<div>
    @Model.First().Firstname
</div>

你需要:

  • 在视图顶部添加@using System.Data.Linq
  • 或者如果您在所有视图中都需要它,请将<add namespace="System.Data.Linq" />添加到Views文件夹中的web.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="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
            <add namespace="System.Data.Linq" />
        </namespaces>
    </pages>
</system.web.webPages.razor>