asp.net-mvc views code-behind

asp.net mvc - cómo agregar una página de código subyacente a una vista o vista parcial



asp.net-mvc views (4)

Noté que con la última versión de ASP.NET MVC que una Vista ya no tiene clases de código subyacente.

¿Cómo hago para agregar una clase de código subyacente ahora a una vista parcial o parcial?


No estoy seguro de por qué está creando un código detrás del archivo, pero si realmente lo hace, entonces consideraría utilizar el enfoque estándar de formularios web.

También me gustaría examinar los conceptos básicos de MVC para entender por qué no se necesitan las páginas posteriores.

Otra explicacion

Cómo usar ASP: gráfico sin código subyacente (Opción B)


Ok, he verificado la solución, aquí hay algo que debes tener en cuenta:

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

En su caso, necesita cambiar "Project.Views.Shared.View" en función de su espacio de nombres y nombre de clase, y para acceder al control en el código subyacente, debe agregar manualmente la declaración en el código subyacente. En mi caso, necesito inicializar el control gigaSoft proEssential:

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; }


Para agregar un archivo codebehind a su página aspx, mientras sigue permitiendo que sea el objetivo de una vista MVC, haga lo siguiente.

Para una página de vista llamada Index.aspx ...

Reemplace el siguiente código ....

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

con

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

Luego cree un archivo llamado Index.aspx.cs (o .vb ).

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

o VB

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

Eso es. Lo único especial es usar la clase base Mvc.ViewPage correcta.


Cómo agregar una página de código subyacente a una vista parcial

Parece que esto no fue particularmente complicado, y es bastante factible. Esta respuesta funcionó para un ViewUserControl parcial, pero lo mismo debería aplicarse a un ViewPage normal de MVC también.

  1. Agregue un nuevo archivo de clase con la convención de <view filename & extention>.cs (es decir, view.ascx.cs )

  2. Añadir using System.Web.Mvc; a la clase

  3. Cambie la clase para Heredar de ViewUserControl<> .
    es decir, public class Foo:ViewUserControl

  4. Agregue lo siguiente al encabezado de la Vista:

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

  5. Copie los archivos de la solución y vuelva a arrastrarlos para volver a asociarlos. Esto puede no ser necesario en VS 2010+ y MVC 2+.

Para que esto funcione con una vista MVC normal, solo necesita heredar la clase de "ViewPage"