Не удается получить доступ к Linq при использовании Razor без MVC - PullRequest
2 голосов
/ 13 марта 2012

Кто-нибудь имел опыт работы с Razor без MVC. Я использую шаблонный движок из http://www.fidelitydesign.net/?p=208, но я не могу использовать ни один из запросов linq в коде Razor, например

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

Это выдает ошибку:

System.Collections.Generic.List 'не содержит определения для 'First' и без метода расширения 'First', принимающего первый аргумент типа 'System.Collections.Generic.List' можно найти (являются вы пропустили директиву использования или ссылку на сборку

Для этого примера Model содержит список Person ниже

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

1 Ответ

1 голос
/ 13 марта 2012

Модель - это список, поэтому вам нужно First для модели, а не Person, First возвращает экземпляр класса Person:

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

Вам необходимо:

  • добавьте @using System.Data.Linq вверху вашего представления
  • или, если вам это нужно во всех представлениях, добавьте <add namespace="System.Data.Linq" /> в файл web.config в папке Views.

Вот как вы это делаете:

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...