Ответ 1
Попробуйте использовать:
string ap = c.Request["AP"];
Что читается из файлов cookie, формы, строки запроса или переменных сервера.
В качестве альтернативы:
string ap = c.Request.Form["AP"];
чтобы просто прочитать данные формы.
Я пытаюсь получить данные POST, но мне не повезло. Мой код ниже. Когда я нажимаю кнопку формы, ничего не происходит.
Я ожидал, что хотя бы моя IDE будет привязана к A.Ret()
, но ничего не происходит.
using System.Web;
public class A
{
public static string ret() {
var c = HttpContext.Current;
var v = c.Request.QueryString; // <-- I can see get data in this
return c.Request.UserAgent.ToString();
return c.Request.UserHostAddress.ToString();
return "woot";
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="aspnetCSone._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server" method="post" action="Default.aspx">
<input type=hidden name="AP" value="99" />
<input type=button value="Submit" />
<div>
<a id="aa">a</a>
<% = A.ret() %>
</div>
</form>
</body>
</html>
Попробуйте использовать:
string ap = c.Request["AP"];
Что читается из файлов cookie, формы, строки запроса или переменных сервера.
В качестве альтернативы:
string ap = c.Request.Form["AP"];
чтобы просто прочитать данные формы.
c.Request["AP"]
будет читать опубликованные значения. Также вам нужно использовать кнопку отправки, чтобы отправить форму:
<input type="submit" value="Submit" />
вместо
<input type=button value="Submit" />
В HTML4 есть только ОК, но не в XHTML. Проверьте свой редактор.
<input type=button value="Submit" />
Я немного удивлен, что этот вопрос задавался так много раз, но наиболее подходящее и дружественное решение не было документировано.
У меня часто есть веб-страницы, использующие AngularJS, и когда я нажимаю на кнопку "Сохранить", я "ПОЧТАЮ" эти данные обратно на мою страницу .aspx или .ashx, чтобы сохранить это обратно в базу данных. Данные будут в форме записи JSON.
На сервере, чтобы вернуть исходные данные обратно в класс С#, вот что я буду делать.
Сначала определите класс С#, который будет содержать опубликованные данные.
Предположим, что моя веб-страница публикует данные JSON следующим образом:
{
"UserID" : 1,
"FirstName" : "Mike",
"LastName" : "Mike",
"Address1" : "10 Really Street",
"Address2" : "London"
}
Тогда я бы определил класс С#, как этот...
public class JSONRequest
{
public int UserID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
}
(Эти классы могут быть вложенными, но структура должна соответствовать формату данных JSON. Итак, если вы публикуете запись пользователя JSON, со списком записей заказов внутри нее, ваш класс С# также должен содержать List<>
записей заказов.)
Теперь, в моем файле .aspx.cs или .ashx, мне просто нужно сделать это и оставить JSON.Net для выполнения тяжелой работы...
protected void Page_Load(object sender, EventArgs e)
{
string jsonString = "";
HttpContext.Current.Request.InputStream.Position = 0;
using (StreamReader inputStream = new StreamReader(this.Request.InputStream))
{
jsonString = inputStream.ReadToEnd();
}
JSONRequest oneQuestion = JsonConvert.DeserializeObject<JSONRequest>(jsonString);
И что это. Теперь у вас есть класс JSONRequest
, содержащий различные поля, которые были отправлены на ваш сервер.