Подтвердить что ты не робот

Как добавить страницу с кодом для просмотра или частичного просмотра

В последней версии ASP.NET MVC я замечаю, что в представлении больше нет настроек по умолчанию для кода.

Как мне теперь добавить класс кода для представления в вид или частичный просмотр?

4b9b3361

Ответ 1

Как добавить страницу с кодовым именем в частичный вид

Кажется, это не было особенно сложно, и вполне умен. Этот ответ работал на Partial ViewUserControl, но то же самое должно быть применимо и для обычного MVC ViewPage

  • Добавить новый файл класса с условным обозначением <view filename & extention>.cs (т.е. view.ascx.cs)

  • Добавьте using System.Web.Mvc; в класс

  • Измените класс на Inherit с ViewUserControl<>.
    т.е. public class Foo:ViewUserControl

  • Добавьте в заголовок View следующее:

    CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"

  • Скопируйте файлы из решения и перетащите назад, чтобы повторно связать их вместе. Это может быть необязательно в VS 2010+ и MVC 2 +.

Для этого, чтобы работать с обычным MVC View, вам просто нужно наследовать класс из "ViewPage"

Ответ 2

Я не уверен, почему вы создаете код, лежащий за файлом, но если вы действительно это делаете, я бы предпочел вместо этого использовать стандартный метод webforms.

Я также хотел бы изучить основы MVC, чтобы понять, почему страницы не нужны.

Другое объяснение

Как использовать ASP: Диаграмма без кода (вариант B)

Ответ 3

Хорошо, я проверил решение, вот что вам нужно отметить:

CodeBehind = "View.ascx.cs" Inherits = "Project.Views.Shared.View"

В вашем случае вам необходимо изменить "Project.Views.Shared.View" на основе вашего пространства имен и имени класса, а для доступа к элементу управления в коде для кода вам нужно вручную добавить объявление в код, В моем случае мне нужно инициализировать элемент управления eGeSoft:

public class gigaTest2 : ViewUserControl
{
    protected global::Gigasoft.ProEssentials.PegoWeb PegoWeb1;
    protected void Page_Load(object sender, EventArgs e)
    {
        // Set Titles 
        PegoWeb1.PeString.MainTitle = "Hello ASP.NET";
        PegoWeb1.PeString.SubTitle = "";

        // One simple way of passing data, data binding also possible. //' 
        PegoWeb1.PeData.Subsets = 1;
        PegoWeb1.PeData.Points = 6;
        PegoWeb1.PeData.Y[0, 0] = 10;
        PegoWeb1.PeData.Y[0, 1] = 30;
        PegoWeb1.PeData.Y[0, 2] = 20;
        PegoWeb1.PeData.Y[0, 3] = 40;
        PegoWeb1.PeData.Y[0, 4] = 30;
        PegoWeb1.PeData.Y[0, 5] = 50;

        // Set style of chart and a few other properties //' 
        PegoWeb1.PePlot.Method = Gigasoft.ProEssentials.Enums.GraphPlottingMethod.Bar;
        PegoWeb1.PePlot.Option.GradientBars = 8;
        PegoWeb1.PeFont.FontSize = Gigasoft.ProEssentials.Enums.FontSize.Large;
    }

Ответ 4

Чтобы добавить файл codebehind на свою страницу aspx, но при этом позволяя ему быть объектом просмотра MVC, выполните следующие действия.

Для страницы просмотра с именем Index.aspx...

Замените следующий код....

<%@ Page Inherits="System.Web.Mvc.ViewPage" %>

с

<%@ Page CodeFile="Index.aspx.vb" Inherits="Home_Index" %>

Затем создайте файл с именем Index.aspx.cs (или .vb).

partial class Home_Index : System.Web.Mvc.ViewPage
{...}

или VB

Partial Class Home_Index
    Inherits System.Web.Mvc.ViewPage
    ...
End Class

Что это. Единственное особенное - использовать правильный базовый класс Mvc.ViewPage.