문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top