2013-10-10 3 views
0

Я новичок в ASP.NET, и я стараюсь выяснить, как правильно отправлять данные от клиента на сервер. В настоящее время у меня есть страница ASPX, в которой хранятся элементы HTML, и я подумываю о том, как отправлять данные из содержимого HTML на сервер. Предполагая, что перед публикацией данных я хотел бы сделать некоторые материалы javascript, что является «лучшей практикой» для этого.ASP.NET: отправка данных с клиента на сервер

  1. Должна быть простая форма HTML с прослушивателем в файле .cs (предполагая, что я могу ввести код javascript перед фактическим сообщением).
  2. Возможно, у меня должен быть простой HTML (вместо него ASP ASP), который отправляет данные с помощью javascript?
  3. Что-то еще?

Благодаря

+0

Вы можете сделать это с помощью [Ajax] (http://www.tutorialspoint.com/ajax/) –

+0

Если вы новичок в 'asp.net', за ваш интерес, пожалуйста, узнать, как 'viewstate' работает. – Pratik

+0

Спасибо! Я посмотрю –

ответ

2

Предполагая, что вы на стороне сервера форму уже, вам просто нужно обрабатывать onsubmit событие формы.

<html> 
<head> 
    <script language="javascript"> 
    function handleSubmit() 
    { 
     var form = this; 
     ..... 
    } 
    </script> 
</head> 
<body> 
    <form runat="server" onsubmit="handleSubmit()"> 
     ... 
    </form> 
</body> 
</html> 

handleSubmit() должны быть объявлены в script блока или внешнего скрипта. Если вы вернете false из этого метода, он остановит отправку формы; что-нибудь еще, и он будет продолжать подавать на сервер.

+0

Именно то, что я искал. Я проверю это, надеюсь, это сработает. Благодаря! –

0

просто определить действия в вашем виде тега и установить атрибут метод размещать и представить форму, как это,

<form id="myForm" runat="server" action="Default.aspx" method="post"> 

// some fields are here. for instance 

<asp:TextBox ID="txtName" runat="server" ></asp:TextBox> 

<asp:Button ID="btnSubmit" Text="Submit" runat="server"/> 

</form> 

когда нажмите на кнопку отправить текстовое поле значение пост на странице акции «Default.aspx»

и получить это значение из кода за Default.aspx.cs как этот

public partial class Default : System.Web.UI.Page 
    { 
       string name = Request.Form["txtName"]; 
    } 
+0

Спасибо. Где я нажимаю код js перед сообщением? –

+0

Привет, если вам нравится использовать postback, поэтому вам не нужно использовать js для выполнения этой задачи, просто используйте кнопку отправки html, и все данные отправят вам страницу действий. –

2

ASP .NET использует только одна форма и р ostback запускается элементами управления ASP.NET или, альтернативно, с javascript. Некоторые элементы управления запускают обратную передачу по умолчанию, некоторые из них необходимо настроить, например свойство AutoPostBack. Это означает, что над HTML есть слой, и элементы управления делают это за вас. Вы просто обрабатываете события на стороне сервера (файлы .cs). Это пытается имитировать WinForms.

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

Если вы знакомы с HTML и только начинаете с ASP.NET, я предлагаю вам взглянуть на ASP.NET MVC, где вещи более прямолинейны с точки зрения HTML.

+0

+1000 Если вы новичок в веб-разработке и не запираетесь на использование WebForms из-за существующего проекта, вы будете делать ОГРОМНОЕ плохую услугу, если не будете смотреть на MVC. Я занимаюсь корпоративной веб-разработкой с 2001 года и никогда не любил WebForms. –

0

Если вы используете элементы управления ASP.Net, вы можете взглянуть на концепции представлений представлений и обратной передачи, чтобы достичь желаемого. Но если вы используете элементы управления HTML, я предлагаю вам использовать ajax, а не использовать html-форму для публикации данных на страницах aspx. Вы можете использовать jQuery.ajax() для этой цели.

На данный момент возникает вопрос, как обращаться с запросом ajax на заднем конце? Вы можете сделать одно из следующего:

  1. Создайте одну страницу aspx, которая читает опубликованные данные и возвращает ответы json. Вам нужно установить Response.ContentType = "application/json" и напишите json с помощью Response.Write(); и вызовите Response.End() на этой странице. - Это легко, но хромой способ делать что-то.

  2. Создайте один обработчик HTTP, который читает данные post и дает ответы json.

  3. Создайте веб-сервис .asmx и используйте его.

  4. Использование веб-методов. Проверяйте http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

  5. Создайте веб-службы WCF REST. Проверить http://www.codeproject.com/Articles/571813/A-Beginners-Tutorial-on-Creating-WCF-REST-Services

  6. Используйте новый и удивительный веб-API. Проверить http://www.asp.net/web-api

+0

Вы не можете публиковать клиентскую форму без использования AJAX? Шутки в сторону? –

+0

@TimRogers Я отредактировал ответ, чтобы быть более ясным. Спасибо за ваши Коментарии. –

Смежные вопросы