ASP.net страница без кода позади


У меня есть ASP.Net страница с кодом C# позади.

тем не менее, меня попросили не использовать код позади - так что это будет проще развернуть в SharePoint.

есть ли способ включить код C# в ASP.Net страница, без использования отдельного кода за файлом?

6 57

6 ответов:

по умолчанию Sharepoint не разрешает выполнение кода на стороне сервера в файлах ASPX. посмотреть этот для того, чтобы решить эту проблему.

тем не менее, я бы сказал, что наличие кода не обязательно сложно развернуть в Sharepoint (мы делаем это широко)-просто скомпилируйте свои классы кода в сборку и разверните ее с помощью решение.

Если все еще нет, вы можете включить весь код, который вы обычно размещаете в codebehind, например Итак:

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

в SharePoint есть два очень разных типа страниц: страницы приложений и страницы сайта.

Если вы собираетесь использовать свою страницу в качестве страницы приложения, вы можете безопасно использовать встроенный код или код позади на своей странице, поскольку страницы приложений живут в файловой системе.

Если это будет страница сайта, вы можете безопасно писать встроенный код, пока у вас есть такой в первоначальном развертывании. Однако, если ваша страница сайта будет настроена в какой-то момент в будущем встроенный код больше не будет работать, потому что настроенные страницы сайта живут в базе данных и выполняются в asp.net режим "без компиляции".

итог - вы можете написать страницы aspx со встроенным кодом. Единственная проблема - это настроенные страницы сайта... который больше не будет заботиться о вашем встроенном коде.

да на Вашей странице 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>
<% } %>

Я думал, что вы могли бы развернуть ваш .aspx-страницы без .aspx.cs до тех пор, пока DLL была в вашей корзине. Часть проблемы здесь заключается в том, как работает visual studio .net .страница ASPX.

посмотреть здесь: работа со страницами Однофайловых веб-форм в Visual Studio .NET

Я точно знаю, что VS2008 с asp.net MVC RC у вас нет файлов с выделенным кодом для ваших представлений.

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