簡體   English   中英

沒有代碼的ASP.net頁面

[英]ASP.net page without a code behind

我有一個后面有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窗體頁面

我確信VS2008與asp.net MVC RC你沒有代碼隱藏文件的視圖。

文件: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 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM