뷰 또는 부분보기에 코드-비만 페이지를 추가하는 방법
-
22-08-2019 - |
문제
최신 버전의 ASP.NET MVC를 사용하면 더 이상 Code-BeeHind 클래스가있는 기본값이 없음을 알 수 있습니다.
지금 Code-Behind 클래스를보기 또는 부분보기에 추가하는 방법 ??
해결책
부분보기에 코드-비만 페이지를 추가하는 방법
이것은 특히 까다 롭지 않은 것 같습니다. 이 답변은 부분적으로 작동했습니다 ViewUserControl
그러나 정상적인 MVC에도 동일하게 신청해야합니다 ViewPage
또한
컨벤션과 함께 새 클래스 파일을 추가하십시오
<view filename & extention>.cs
(즉view.ascx.cs
)추가하다
using System.Web.Mvc;
수업에상속으로 클래스를 변경하십시오
ViewUserControl<>
.
즉public class Foo:ViewUserControl
뷰의 헤더에 다음을 추가하십시오.
CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"
솔루션에서 파일을 복사하고 다시 드래그하여 두 사람을 다시 연관시킵니다. 이것은 VS 2010+ 및 MVC 2+에서 필요하지 않을 수 있습니다.
이것이 일반적인 MVC보기로 작동하려면 "ViewPage"에서 클래스를 상속하면됩니다.
다른 팁
왜 파일 뒤에 코드를 만들고 있는지 잘 모르겠지만 실제로 그렇게한다면 대신 표준 웹 포름 접근 방식을 사용하는 것을 고려할 것입니다.
또한 MVC의 기본 사항을 조사하여 페이지 뒤에서 페이지가 필요하지 않은 이유를 이해합니다.
알겠습니다. 솔루션을 확인했습니다. 여기에 주목해야 할 사항이 있습니다.
codebehind = "deve.ascx.cs"enherits = "project.viewshared.view"
귀하의 경우, 네임 스페이스 및 클래스 이름을 기반으로 "Project.views.shared.view"를 변경해야하며 코드 베어드의 컨트롤에 액세스하려면 코드-비만에서 선언을 수동으로 추가해야합니다. 제 경우에는 Gigasoft Proessential Control을 초기화해야합니다.
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
기본 클래스.