2012-03-13 30 views
2

有沒有人有沒有使用MVC的Razor的經驗。我使用的是模板引擎從http://www.fidelitydesign.net/?p=208建立起來,但我不能在剃刀代碼中使用任何LINQ查詢例如在沒有MVC的情況下使用Razor時無法訪問Linq

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

這引發錯誤:

System.Collections.Generic.List' does not contain a definition for 'First' and no extension method 'First' accepting a first argument of type 'System.Collections.Generic.List' could be found (are you missing a using directive or an assembly reference

在這個例子中Model包含下面

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

我想你也嘗試'@using System.Linq'? – BrokenGlass 2012-03-13 13:09:45

+0

是的,我已經調試並檢查添加了彙編 – scully 2012-03-13 13:13:21

+0

語法錯誤,'Model'是列表,所以'First'需要在'Model'上調用。 – ntziolis 2012-03-13 13:13:40

回答

1

模型的Person名單列表,所以你需要First型號不PersonFirst返回Person類的一個實例:

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

您需要:

  • 在您的視圖的頂部添加@using System.Data.Linq
  • 或者如果你需要它的所有視圖添加<add namespace="System.Data.Linq" />到在您的視圖文件夾中的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> 
+0

我已經更新了這個問題,說'Model'包含'Person'列表。有一個比這更深的問題。不過謝謝。 – scully 2012-03-13 13:16:16

+2

不要忘記在Linq上重新啓動Visual Studio for Intellisense支持。 – Silvermind 2012-03-13 13:26:45

+0

沒有視圖文件夾,這是一個「類庫」項目,並且html標記來自數據庫,請查看示例項目的[link](http://www.fidelitydesign.net/?p=208) – scully 2012-03-13 13:42:43

相關問題