developer tip

코드가없는 ASP.net 페이지

copycodes 2020. 11. 30. 17:57
반응형

코드가없는 ASP.net 페이지


뒤에 C # 코드가있는 ASP.Net 페이지가 있습니다.

그러나 SharePoint에서 더 쉽게 배포 할 수 있도록 코드 숨김을 사용하지 말라는 요청을 받았습니다.

파일 뒤에 별도의 코드를 사용하지 않고 ASP.Net 페이지에 C # 코드를 포함하는 방법이 있습니까?


기본적으로 Sharepoint는 ASPX 파일에서 서버 쪽 코드를 실행하는 것을 허용하지 않습니다. 이를 해결하는 방법 은 이것을 참조하십시오 .

그러나 코드 숨김이 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의 "컴파일 없음"모드에서 실행되기 때문에 인라인 코드가 더 이상 작동하지 않습니다.

결론은-인라인 코드로 aspx 페이지를 작성할 수 있다는 것입니다. 유일한 문제는 사용자 정의 된 사이트 페이지입니다. 더 이상 인라인 코드를 신경 쓰지 않습니다.


DLL이 bin에있는 한 .aspx.cs없이 .aspx 페이지 만 배포 할 수 있다고 생각했습니다. 여기서 문제의 일부는 Visual Studio .net이 .aspx 페이지에서 작동하는 방식입니다.

여기에서 확인하십시오 : Visual Studio .NET에서 단일 파일 Web Forms 페이지 작업

I know for sure that VS2008 with asp.net MVC RC you don't have code-behind files for your views.


File: 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

참고URL : https://stackoverflow.com/questions/563585/asp-net-page-without-a-code-behind

반응형