ASP.net страница без кода позади
У меня есть ASP.Net страница с кодом C# позади.
тем не менее, меня попросили не использовать код позади - так что это будет проще развернуть в SharePoint.
есть ли способ включить код C# в ASP.Net страница, без использования отдельного кода за файлом?
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 у вас нет файлов с выделенным кодом для ваших представлений.