В последней версии ASP.NET MVC я замечаю, что в представлении больше нет настроек по умолчанию для кода.
Как мне теперь добавить класс кода для представления в вид или частичный просмотр?
В последней версии ASP.NET MVC я замечаю, что в представлении больше нет настроек по умолчанию для кода.
Как мне теперь добавить класс кода для представления в вид или частичный просмотр?
Как добавить страницу с кодовым именем в частичный вид
Кажется, это не было особенно сложно, и вполне умен. Этот ответ работал на 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"
Я не уверен, почему вы создаете код, лежащий за файлом, но если вы действительно это делаете, я бы предпочел вместо этого использовать стандартный метод webforms.
Я также хотел бы изучить основы MVC, чтобы понять, почему страницы не нужны.
Хорошо, я проверил решение, вот что вам нужно отметить:
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;
}
Чтобы добавить файл 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
.