코드가없는 asp.net 페이지
-
05-09-2019 - |
문제
C# 코드가있는 asp.net 페이지가 있습니다.
그러나 코드를 사용하지 말라고 요청 받았습니다. 따라서 SharePoint에 더 쉽게 배포 할 수 있습니다.
파일 뒤에 별도의 코드를 사용하지 않고 ASP.NET 페이지에 C# 코드를 포함시키는 방법이 있습니까?
해결책
기본적으로 SharePoint는 ASPX 파일에서 서버 측 코드를 실행할 수 없습니다. 이것 좀 봐 그것을 해결하는 방법.
그러나 Code-Behind를 갖는 것이 SharePoint에 배포하기가 반드시 어렵다고 생각합니다 (광범위하게 수행). 코드 베어드 클래스를 어셈블리로 컴파일하고 해결책.
여전히 아니오 인 경우, 일반적으로 배치해야 할 모든 코드를 코드 비유에 포함시킬 수 있습니다.
<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
//hello, world!
}
</script>
다른 팁
실제로 ASPX 페이지에 모든 코드를 가질 수 있습니다. 설명 된 바와 같이 여기.
샘플 여기:
<%@ Language=C# %>
<HTML>
<script runat="server" language="C#">
void MyButton_OnClick(Object sender, EventArgs e)
{
MyLabel.Text = MyTextbox.Text.ToString();
}
</script>
<body>
<form id="MyForm" runat="server">
<asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
<asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
<asp:label id="MyLabel" runat="server"></asp:label>
</form>
</body>
</HTML>
예, ASPX 페이지에는 runat = Server가있는 스크립트 태그가 포함되어 있습니다.
<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
// some load code
}
</script>
클래식 ASP 구문을 사용할 수도 있습니다
<% if (this.MyTextBox.Visible) { %>
<span>Only show when myTextBox is visible</span>
<% } %>
SharePoint에는 매우 다른 두 가지 유형의 페이지가 있습니다 : 응용 프로그램 페이지 및 사이트 페이지.
애플리케이션 페이지가 파일 시스템에서 실시되면 페이지에서 페이지를 안전하게 사용할 수 있습니다.
사이트 페이지가 되려면 초기 배포에서와 같이 인라인 코드를 안전하게 쓸 수 있습니다. 그러나 향후 어느 시점에서 사이트 페이지가 사용자 정의 될 경우, 사용자 정의 된 사이트 페이지가 데이터베이스에 거주하고 ASP.NET의 "No Compile"모드에서 실행되기 때문에 인라인 코드가 더 이상 작동하지 않습니다.
결론은 - 인라인 코드로 ASPX 페이지를 작성할 수 있습니다. 유일한 문제는 사용자 정의 된 사이트 페이지에 대한 것입니다. 이는 더 이상 인라인 코드를 관리하지 않습니다.
DLL이 빈에있는 한 .aspx.cs없이 .aspx 페이지 만 배포 할 수 있다고 생각했습니다. 여기서 문제의 일부는 Visual Studio .NET가 .aspx 페이지에서 작동하는 방식입니다.
여기에서 확인하십시오.Visual Studio .net에서 단일 파일 웹 양식 페이지로 작업
ASP.NET MVC RC와 함께 vs2008은 귀하의 뷰에 대한 코드 비해 파일이 없음을 알고 있습니다.
파일 : logdate.aspx
<%@ Page Language="c#" %>
<%@ Import namespace="System.IO"%>
<%
StreamWriter tsw = File.AppendText(@Server.MapPath("./test.txt"));
tsw.WriteLine("--------------------------------");
tsw.WriteLine(DateTime.Now.ToString());
tsw.Close();
%>
Done