Случай
У меня есть две веб-формы, а некоторые — код. Первая веб-форма является формулой, в которую я ввожу строку. Я хочу отправить эту строку во второй формуляр, используя метод post, и отобразить его.
Проблема
Я получаю сообщение об ошибке, говоря, что MAC ViewState не может быть проверен:
Erreur du serveur dans l’application ‘/’. Échec de la validation MAC Viewstate. Si cette application est hébergée par une batterie de serveurs ou un cluster, assurez-vous que la configuration spécifie le même validationKey et le même алгоритм проверки. AutoGenerate ne peut pas être utilisée dans un cluster.
Что я делаю не так?
WebForm1.aspx
Webform2.aspx
Webform2.aspx.cs
Примечание. У меня очень мало опыта работы с веб-технологиями, и я пытаюсь изучить asp.net и html, поэтому, пожалуйста, простите меня.
ИЗМЕНИТЬ 1:
WebForm3.aspx
WebForm3.aspx.cs
WebForm1.aspx (пересмотренный)
WebForm3.aspx работает нормально, и WebForm1 с помощью asp: Button также работает, спасибо вам большое.
Дополнительный вопрос:
Целью этого теста было искать другие способы отправки данных «общим» способом (метод post, так как «они» сказали, что это самый безопасный способ). Теперь у меня остается только один вопрос: какова наилучшая практика, используя два файла (метод WebForm1 и WebForm2) или один файл (метод WebForm3)? Другими словами, должна ли одна и та же страница отвечать за сбор данных и их обработку, или эти ответы должны быть разделены на два файла?
EDIT 2 и последний вопрос
При использовании двух файлов я вижу, что свойство IsPostBack равно false. При использовании одного файла я вижу, что свойство IsPostBack равно true при отправке. Является ли это свойство изменяться (и, следовательно, полезно) при использовании одного файла?
WebForm1.aspx
Предполагая, что я понял, что вы пытаетесь сделать — если вы хотите переопределить механизм PostBack WebForms, простой способ — использовать PostBackUrl с PostBackUrl управления Button .
Это работает ASP.Net WebForms (обратная передача на ту же страницу). Есть другие способы POSTing на другой странице WebForms, но сначала попробуйте PostBackUrl и посмотрите, действительно ли это все, что вам действительно нужно (наименьшее количество сопротивления).
Вы также можете просмотреть ASP.Net MVC или WebPages, если хотите использовать более «стандартизованный» способ делать вещи (например, просто хотеть POST на выбранный вами ресурс) в качестве того, что, как я думаю, вы хотите достичь.
Обновить
Ну, вам не понравится мой ответ, потому что «это зависит» —
«общий способ» в ASP.net WebForms — это на самом деле та же страница — механизм PostBack по умолчанию, а затем вы будете обрабатывать отображение так же, как и вы, но через controls (например, » Placeholder или user controls ).
вы также можете посмотреть на такие элементы, как «Мастера» → полезно для тех случаев, когда вам нужно направлять пользователя через Steps например, возможно, длинную форму заявки, и вы хотите разрезать ее на более управляемые шаги — ваш собственный в одной Page используя механизм Postback , или даже несколько Page (перекрестная страница), хотя это возможно, возможно, упражнение в самонаказании 🙂
есть и другие способы, но я не хочу путать и оставаться на теме (например, AJAX).
Я буду «защищаться», потому что вам нужно быть более конкретным в этом вопросе, и, возможно, заслуживает отдельного вопроса. В общем, оперативное правило: «не доверяйте клиенту» (что означает проверку всех данных, которые все/все клиенты предоставляют вашему приложению), серверная сторона — не только проверка на стороне клиента (они должны работать рука об руку, а не взаимоисключающие),
Обновление 3
При использовании двух файлов я вижу, что свойство IsPostBack равно false. При использовании одного файла я вижу, что свойство IsPostBack равно true при отправке. Является ли это свойство изменяться (и, следовательно, полезно) при использовании одного файла?
IsPostBack означает «Этот запрос POST пришел от меня»?
- Страница1.aspx → Button.PostBackUrl → Page2.aspx = IsPostBack is false
- Страница1.aspx → Любая кнопка/элемент управления, который запускает IsPostBack = IsPostBack является true
Сказав это, «только полезно», возможно, в этом простом примере. Но вы можете использовать эту проверку для других вещей — ранее вы упомянули о безопасности, чтобы вы могли проверить, может ли ваша страница//будет/принимать заявку POST, поступающей откуда угодно.
В вашем примере примера целевая страница POST (при использовании 2-х страниц и PostBackUrl ) должна проверять/проверять полученные POST-данные, поскольку каждый может сделать то же самое, что вы только что сделали (POST к нему).
Реализовано в версии 8.3.5.1068.
В дополнение к автоматическому REST интерфейсу прикладного решения мы реализовали возможность создания собственных произвольных HTTP-сервисов в прикладном решении.
Вы самостоятельно, с помощью встроенного языка, можете сформировать ответ на запрос. При этом у вас есть удобный доступ к телу, заголовкам и строке исходного запроса, а также у вас есть возможность формировать код, тело и заголовки ответа по своему усмотрению.
По сравнению с имеющимися в платформе SOAP web-сервисами, HTTP-сервисы имеют ряд преимуществ:
- Простота программирования клиента таких сервисов;
- Потенциально меньший объем передаваемых данных;
- Потенциально меньшая вычислительная нагрузка;
- HTTP-сервисы ориентированы на «ресурсы», в то время как SOAP сервисы ориентированы на «действия».
Первые три фактора особенно важны для приложений, работающих на мобильных устройствах.
Вы можете использовать HTTP-сервисы как «легкие» RPC-сервисы, не требующие сложной подготовки XML-пакетов. Методы могут идентифицироваться в URL, а параметры могут передаваться в опциях запроса, или в его теле. В последнем случае такие сервисы уже вплотную приближаются как SOAP, проигрывая ему в четкости спецификации, но выигрывая в гибкости.
По своему «конструктивному исполнению» HTTP-сервисы очень напоминают web-сервисы, имеющиеся в платформе. Точно так же есть специальный объект конфигурации HTTP сервис. Такие объекты добавляются в ветку Общие — HTTP-сервисы:

Каждый HTTP-сервис может содержать в себе один или несколько шаблонов. Для каждого шаблона вы можете создать один или несколько методов, выполняющих обработку данных:

Шаблон задаёт путь, по которому может происходить обращение к HTTP-сервису. В шаблоне вы можете использовать определённый набор символов, в том числе параметризованные сегменты вида .
Для каждого метода вы указываете, во-первых, обрабатываемый HTTP метод, а также создаёте процедуру на встроенном языке, которая и будет выполнять обработку данных. В качестве HTTP метода вы можете выбрать один из следующих: GET, POST, PUT, DELETE, PATCH, MERGE, CONNECT, OPTIONS, TRACE, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK. Или указать Любой. В этом случае можно будет использовать любой метод из приведённого списка.
При обращении к такому HTTP-сервису платформа сначала попытается сопоставить URL, по которому произошло обращение, с одним из имеющихся шаблонов и методов. Если сопоставить не удалось, то платформа выдаст код ответ 404 Not Found. Если подходящий метод будет найден, то платформа начнёт выполнение его обработчика, передав в него все имеющиеся в запросе данные в виде объекта встроенного языка HTTPСервисЗапрос:

Из этого объекта вы можете легко получить, например, параметры, содержащиеся в исходном URL, и использовать их для извлечения из базы нужных данных.
Полученные данные вы можете вернуть в разных форматах. Например, их можно преобразовать в XML, как на картинке выше, или даже просто в текстовую строку с разделителями.
Ответ сервиса формируется специальным объектом встроенного языка HTTPСервисОтвет, в тело которого вы можете поместить подготовленные данные.
Публикация HTTP-сервисов выполняется аналогично тому, как публикуются web-сервисы. Также аналогичным образом для них работает аутентификация, использование разделения данных и отладка.
The default when creating a new WebForm in Visual Studio is WebForm1.aspx
I always change this to Default.aspx.
Is there a way to change the default to always read Default.aspx?
1 Answer 1
You can create your own project templates including any content you like (including project settings). See http://msdn.microsoft.com/en-us/library/ms247120.aspx
Not the answer you’re looking for? Browse other questions tagged visual-studio webforms or ask your own question.
Related
Hot Network Questions
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2019 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2019.11.15.35459