![](/img/trans.png)
[英]C# ASP.NET MVC - Unable to get the properties/data of POST data I received from the frontend
[英]Get POST data in C#/ASP.NET
我想获取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" />
我有点惊讶这个问题之前被问了很多次,但是最可重复使用且友好的解决方案还没有被记录下来。
我经常使用AngularJS的网页,当我点击“保存”按钮时,我会将这些数据“POST”回我的.aspx页面或.ashx处理程序,以将其保存回数据库。 数据将采用JSON记录的形式。
在服务器上,要将原始发布的数据转回C#类,这就是我要做的。
首先,定义一个包含已发布数据的C#类。
假设我的网页发布了这样的JSON数据:
{
"UserID" : 1,
"FirstName" : "Mike",
"LastName" : "Mike",
"Address1" : "10 Really Street",
"Address2" : "London"
}
然后我会像这样定义一个C#类......
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用户记录,其中包含Order记录列表,您的C#类还应包含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
类,其中包含POST到您的服务器的各个字段。
以下在HTML4中可以,但在XHTML中没有。 检查你的编辑。
<input type=button value="Submit" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.