System web webpages razor

System web webpages razor

I just upgraded packages in an MVC 3 project (ASP.net 4), and now I am getting the following error message when accessing a page in that project:

Server Error in ‘/MyApplication’ Application.

Could not load file or assembly ‘System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly ‘System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Represents a web code razor host for the web pages.

Constructors

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Initializes a new instance of the WebCodeRazorHost class.

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Initializes a new instance of the WebCodeRazorHost class.

Methods

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Creates a markup parser.

(Inherited from WebPageRazorHost)

DecorateCodeGenerator(RazorCodeGenerator) DecorateCodeGenerator(RazorCodeGenerator) DecorateCodeGenerator(RazorCodeGenerator)

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Returns the methods as language-specific Razor code generator.

(Inherited from RazorEngineHost)

DecorateCodeParser(ParserBase) DecorateCodeParser(ParserBase) DecorateCodeParser(ParserBase)

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Returns the methods as language-specific Razor code parser using the specified language parser.

(Inherited from RazorEngineHost)

DecorateMarkupParser(ParserBase) DecorateMarkupParser(ParserBase) DecorateMarkupParser(ParserBase)

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Returns the method to decorate markup parser using the specified language parser.

(Inherited from RazorEngineHost)

GetClassName(String) GetClassName(String) GetClassName(String)

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Returns the class name of this instance.

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets the code language specified in the webpage.

(Inherited from WebPageRazorHost)

Читайте также:  Asus ap bank что это за программа
PostProcessGeneratedCode(CodeCompileUnit, CodeNamespace, CodeTypeDeclaration, CodeMemberMethod) PostProcessGeneratedCode(CodeCompileUnit, CodeNamespace, CodeTypeDeclaration, CodeMemberMethod) PostProcessGeneratedCode(CodeCompileUnit, CodeNamespace, CodeTypeDeclaration, CodeMemberMethod)

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Returns this method to post all the processed generated code for the host.

(Inherited from RazorEngineHost)

PostProcessGeneratedCode(CodeGeneratorContext) PostProcessGeneratedCode(CodeGeneratorContext) PostProcessGeneratedCode(CodeGeneratorContext)

Generates a post process code for the web code razor host.

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Registers the special file with the specified file name and base type name.

(Inherited from WebPageRazorHost)

RegisterSpecialFile(String, Type) RegisterSpecialFile(String, Type) RegisterSpecialFile(String, Type)

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Registers the special file with the specified file name and base type.

(Inherited from WebPageRazorHost)

Properties

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets the RazorCodeLanguage.

(Inherited from WebPageRazorHost)

DefaultBaseClass DefaultBaseClass DefaultBaseClass

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets a value for the DefaultBaseClass.

(Inherited from WebPageRazorHost)

DefaultClassName DefaultClassName DefaultClassName

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the name of the default class.

(Inherited from WebPageRazorHost)

DefaultDebugCompilation DefaultDebugCompilation DefaultDebugCompilation

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets a value that indicates whether the debug compilation is set to default.

(Inherited from WebPageRazorHost)

DefaultNamespace DefaultNamespace DefaultNamespace

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the default namespace for the host.

(Inherited from RazorEngineHost)

DefaultPageBaseClass DefaultPageBaseClass DefaultPageBaseClass

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the base class of the default page.

(Inherited from WebPageRazorHost)

DesignTimeMode DesignTimeMode DesignTimeMode

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets a value that indicates whether the mode designs a time for the host.

(Inherited from RazorEngineHost)

EnableInstrumentation EnableInstrumentation EnableInstrumentation

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the host that enables the instrumentation.

(Inherited from RazorEngineHost)

GeneratedClassContext GeneratedClassContext GeneratedClassContext

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the generated class context for the host.

Читайте также:  Высветился синий экран на компьютере

(Inherited from RazorEngineHost)

InstrumentedSourceFilePath InstrumentedSourceFilePath InstrumentedSourceFilePath

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the file path of the instrumental source.

(Inherited from WebPageRazorHost)

IsIndentingWithTabs IsIndentingWithTabs IsIndentingWithTabs

Gets or sets whether the design time editor is using tabs or spaces for indentation.

(Inherited from RazorEngineHost)

IsSpecialPage IsSpecialPage IsSpecialPage

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets a value that indicates whether the webpage is a special page.

(Inherited from WebPageRazorHost)

NamespaceImports NamespaceImports NamespaceImports

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets the namespace imports for the host.

(Inherited from RazorEngineHost)

PhysicalPath PhysicalPath PhysicalPath

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets the physical file system path of the razor host.

(Inherited from WebPageRazorHost)

StaticHelpers StaticHelpers StaticHelpers

This type/member supports the .NET Framework infrastructure and is not intended to be used directly from your code.Gets or sets the static helpers for the host.

(Inherited from RazorEngineHost)

TabSize TabSize TabSize

Tab size used by the hosting editor, when indenting with tabs.

Цель урока. Научиться делать вывод данных в html, использование Razor. Helperы. PageableData. Динамические формы. RedirectToLogin, RedirectToNotFoundPage. Страница ошибки. RssActionResult.

Основа

Итак, рассмотрим как устроена часть View.
В контроллере все action-методы возвращают тип ActionResult. И для вывода результата мы используем:
return View(modelData);

Основными параметрами View может быть:

  • Имя, обычно оно совпадает с именем action-метода. В случае если надо вызвать иной по имени View, то используется конструкция return View(“ViewName”, modelData).
  • Данные для отображения во View. Необязательный параметр. При передаче во View этот объект данных будет обозначаться Model. Для связывания типа данных во View указывается ожидаемый тип данных:
  • Layout. Необязательный параметр. При указании этого параметра по данной строке найдется страница-контейнер и вызовется. View-часть будет обработана методом RenderBody()
  • Выбор, какой же View использовать происходит следующим образом:

    • Ищется в папке /Areas/[Area]/Views/[ControllerName]/
    • Ищется в папке /Areas/[Area]/Views/Shared/
    • Ищется в папке /Views/[ControllerName]/
    • Ищется в папке /Views/Shared/

    приступим к изучению.

    Razor

    При создании View есть выбор между двумя движками: ASPX и Razor. Первый мы не будем использовать в дальнейшем, поэтому поговорим о Razor.

    ASPX был громозким движком с тегами для выполнения кода и для вывода данных.

    Razor использует конструкцию @Model.Name . Т.е. всё, что начинается с @ переводит в режим или исполнения кода, или вывода данных @foreach() <…>, или @if() < … >else < … >:

    Читайте также:  Игры через сеть с другом

    Внутри < >находятся теги – это маркер того, что это шаблон. Для простого выполнения кода внутри шаблона используем структуру @< code >, для корректного вывода данных внутри атрибутов или текстом конструкция — @(string result):

    Чтобы вывести не теговый текст, нужно использовать псевдотеги :

    Для вывода html-текста – или должна возвращаться MvcHtmlString, или использовать конструкцию Html.Raw(html-string-value), иначе текст будет выведен с экранированием тегов.

    PageableData

    Рассмотрим постраничный вывод таблицы из БД. Проанализируем:

    1. Контроллер должен получить в параметрах значение страницы, которую мы будем выводить
    2. По умолчанию это будет первая страница
    3. При выводе, мы должны знать:
    1. Список элементов БД, которые выводим
    2. Количество страниц
    3. Текущую страницу

    Создадим Generic-класс PageableData (/Models/Info/PageableData.cs):

    По умолчанию количество выводимых значений на странице – 20, но мы можем изменить этот параметр в конструкторе. Передаем IQueryable и вычисляем кол-во страниц CountPage. Используя PageNo, выбираем страницу:

    В контроллере используем:

    Во View используем данный класс:

    Запускаем, проверяем (http://localhost/User)

    Для продолжения, сгенерируем больше данных (просто ctrl-c, ctrl-v в таблице в Server Explorer)

    Перейдем к созданию Helper’а пагинатора, который даст нам возможность пролистывать этот список.

    Helper (PagerHelper)

    Так как мы используем bootstrap, то и на базе него будем делать пагинатор. В коде он выглядит так:

    Нас интересует только внутренняя часть .
    Helper создается как Extension для класса System.Web.Mvc.HtmlHelper. План таков:

    • Вывести Prev (сделать активным если надо)
    • Вывести ссылки на первые три страницы 1, 2, 3
    • Вывести троеточие, если необходимо
    • Вывести активной ссылку текущей страницы
    • Вывести троеточие, если необходимо
    • Вывести последние три страницы
    • Вывести Next (сделать активной если надо)
    • Заключить всё в ul и вывести как MvcHtmlString

    Код будет выглядеть так:

    Добавим namespace LessonProject.Helper в объявления во View. Это можно сделать двумя способами:

      В самом View

    В Web.config (рекомендуется)

    Добавляем пагинатор во View:

    Обратите внимание на конструкцию
    x => Url.Action("Index", new )
    Это делегат, который возвращает ссылку на страницу. А Url.Action() – формирует ссылку на страницу /User/Index с параметром page = x.
    Вот что получилось (уменьшил количество вывода на странице до 5, чтобы образовалось больше страниц):

    SearchEngine

    Следующим шагом к просмотру данных будет создание поиска. Поиск будет простой, по совпадению подстроки в одном из полей данных. Входной параметр – searchString.

    Создадим класс SearchEngine , который принимает значения

    В первой строке очищаем строку запроса. Создаем regex для поиска. В данном случае, мы ищем только в поле Email у пользователей.

    Как это работает:

    • При вводе слова в поиске, например, «cher [2]», вначале убираем разделители, получаем «cher 2».
    • Создаем regex = (cher|2).
    • Просматриваем весь список, переданный через IQueryable
      Если есть совпадение, то выносим его в IEnumerable — yield return entry
    Ссылка на основную публикацию
    Adblock detector