web-dev-qa-db-ja.com

コードビハインドのないASP.netページ

背後にC#コードを含むASP.Netページがあります。

ただし、コードビハインドを使用しないように求められました。これにより、SharePointでの展開が容易になります。

別のコードビハインドファイルを使用せずに、ASP.NetページにC#コードを含める方法はありますか?

61
Sophia

デフォルトでは、SharePointはサーバー側のコードをASPXファイルで実行することを許可しません。 これを参照 それを解決する方法について。

ただし、分離コードを持つことは必ずしもSharepointで展開するのが難しいとは言えません(私たちは広範囲に行います)-分離コードクラスをアセンブリにコンパイルし、 solution を使用して展開するだけです。

それでもない場合は、通常のようにコードビハインドに配置するすべてのコードを含めることができます。

<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
  //hello, world!
}
</script>
92
Rex M

実際には、aspxページにすべてのコードを含めることができます。説明したとおり こちら

here のサンプル:

<%@ 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>
21
achinda99

はい、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>
<% } %>
8
bendewey

SharePointには、アプリケーションページとサイトページという2種類のページがあります。

ページをアプリケーションページとして使用する場合、アプリケーションページがファイルシステムに存在するため、ページ内でインラインコードまたはコードビハインドを安全に使用できます。

サイトページになる場合は、最初の展開でそのようなコードを持っている限り、インラインコードを安全に記述できます。ただし、将来のある時点でサイトページがカスタマイズされる場合、カスタマイズされたサイトページはデータベースに存在し、asp.netの「コンパイルなし」モードで実行されるため、インラインコードは機能しなくなります。

要するに-インラインコードでaspxページを書くことができます。唯一の問題は、カスタマイズされたサイトページにあります...これは、インラインコードを気にしなくなります。

8
Tudor Olariu

DLLがビンにある限り、.aspx.csなしで.aspxページだけをデプロイできると考えました。ここでの問題の一部は、Visual Studio .netが.aspxでどのように機能するかです。ページ。

こちらをご覧ください: Visual Studio .NETでの単一ファイルWebフォームページの操作

Asp.net MVC RCを備えたVS2008には、ビュー用の分離コードファイルがないことは確かです。

4
IEnumerator

ファイル: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
3
access_granted