Почему моя страница ASP.NET внедряет этот файл WebResource.axd Javascript?

Когда я просматриваю источник на своей странице ASP.NET, я получаю следующий фрагмент:

<script type="text/javascript"> 
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script> 

<script src="/WebResource.axd?d=5lheyan7fritNTjDRpG8vA2&amp;t=633734967316503584" type="text/javascript"></script> 

Файл .aspx выглядит примерно так:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NaturalDateDemo._Default" %>

<form id="form1" runat="server" enableviewstate="False">
   Enter something to parse:<br />
   <asp:TextBox ID="TextBox1" runat="server" Width="270px"></asp:TextBox>
   <asp:Button ID="Button1" runat="server" Text="Parse" PostBackUrl="Default.aspx" CausesValidation="False" EnableViewState="False" UseSubmitBehavior="true" />
</form>

Обе части кода (буквальный код и прочее в/WebResource.axdкажется, связано с выполнениемJavaScript на основе постбэков, и я не могу думать ни о какой причине, по которой моей странице потребуетсяJavaScript делать постбэки.

What is this doing? Where is it coming from? Can I get rid of it? How can I get rid of it?

Страница, с которой идет этот вопрос

Небольшая работа Google найденаэтот указывая на то, чтоvalidation controls может вызвать это, но я не думаю, что у меня есть какие-либо средства проверки.

Глядя наWebResource.axd файл подробно показывает многое из того, что выглядит как функция котельной плиты, на которую я не могу найти никаких ссылок нигде.

После дальнейшего изучения кажется, что моя кнопка отправки не выполняет то, что я думал, потому что в ней есть некоторый JavaScriptonclick обработчик. Однако, используя FireBug, я вижу, что страница полностью обновляется (в HTTP-ответе содержится полный текст страницы), поэтому я понятия не имею, о чем это. OTOH я сейчас вижу__EVENTVALIDATION аргумент, который не должен быть там (потому что проверять нечего), так что это может быть интересно посмотреть.

Исходя из ответа ниже, кажется, что я сталкиваюсь с тем, что ASP.NET по умолчанию (только?) Выполняет постбэк с помощью JavaScript, даже если базовая форма HTML будет работать нормально. (Лично я считаю, что это глупый выбор дизайна для части MS; ASP.NET не должен вводить зависимость JavaScript, пока вы не попросите ее сделать что-то, что не может быть сделано без нее.)

Исходя из этого мнения, несколько человек предположили, что я не знаю, о чем говорю. (Я признаю, что я перепутал проблему по ошибке, используя термин «post-back», думая, что это подразумевает только материал, основанный на JS.) Хотя я не знаю деталей реализации ASP.NET, я знаю, как в целом HTTP POST работает, и мое мнение основано на рассмотрении того, как я сам реализую решение, а не на том, как бы я хотел, чтобы оно работало.

Ответы на вопрос(5)

Ваш ответ на вопрос