uniapp 提交form表单

@submit EventHandle 携带 form 中的数据触发 submit 事件,event.detail = {value : {'name': 'value'} , formId: ''},report-submit 为 true 时才会返回 formId
@reset EventHandle 表单重置时会触发 reset 事件
<form @submit="formSubmit" @reset="formReset">
<view class="uni-btn-v">
<button form-type="submit">Submit</button>
<button type="default" form-type="reset">Reset</button>
</view>
</form>
methods: {
formSubmit: function(e) {
console.log('form发生了submit事件,携带数据为:' + JSON.stringify(e.detail.value))
var formdata = e.detail.value
uni.showModal({
content: '表单数据内容:' + JSON.stringify(formdata),
showCancel: false
});
},
formReset: function(e) {
console.log('清空数据')
}
}

网络请求 uni.request

import $config from "@/appConfig.js"; //调用url前缀 *注意修改为自己的!!!
url: $config.SERVER_URL + 'api/sys/user/modify/uploadPic', //自行修改各自的对应的接口

参考链接

.net接受前端form表单的数据

//form 的提交方式是Get
request.QueryString[key]
//form 的提交方式是Post
string result = null;
using (System.IO.StreamReader sr = new System.IO.StreamReader(request.InputStream, Encoding.UTF8, true, 2048, true))
{
string inputStream = sr.ReadToEnd();
JObject jsonObj = JObject.Parse(inputStream);
if (jsonObj != null)
{
result = Convert.ToString(jsonObj[key]);
}
}
public static  string GetRequestString(string key, HttpRequestBase request)
{
string result = null;
if (request.Form.Get(key) != null && request.Form.Get(key).ToString() != "")
{
result = request.Form.Get(key).ToString();
}
else if (request.QueryString[key] != null && request.QueryString[key].ToString() != "")
{
result = request.QueryString[key].ToString();
}
else if (request.HttpMethod.ToUpper() == "POST")
{
try
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(request.InputStream, Encoding.UTF8, true, 2048, true))
{
string inputStream = sr.ReadToEnd();
JObject jsonObj = JObject.Parse(inputStream);
if (jsonObj != null)
{
result = Convert.ToString(jsonObj[key]);
} request.InputStream.Position = 0;
}
}
catch (Exception ex)
{
LogHelper.LogError("从Post参数中获取数据出现异常", ex);
return null;
} }
return result;
}

.net向前端响应Json数据

可参考链接:https://www.cnblogs.com/litian/p/3870975.html

  • 创建一个结果响应的Model
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace demo3.Models
{
public class ResultModel
{
public string name
{
get; set;
}
}
}
  • 设置响应的结果值,进行json序列化
public string getForm()
{
//设置响应结果
ResultModel res = new ResultModel();
res.name = "test";
//使用JSonConvert序列化
string rsp = JsonConvert.SerializeObject(res);
return rsp;
}

response 响应xml数据

string reMessage = "<?xml version='1.0'?><xml>"
+ "<ToUserName><![CDATA[" + FromUserName + "]]></ToUserName >"
+ "<FromUserName><![CDATA[" + ToUserName + "]]></FromUserName >"
+ "<CreateTime>" + CreateTime + "</CreateTime>"
+ "<MsgType><![CDATA[text]]></MsgType >"
+ "<Content><![CDATA[未找到相关内容]]></Content >"
+ "</xml>";
//创建XmlDocument对象,将符合xml格式的字符串加载到dom中
XmlDocument xdoc = new XmlDocument();
//string转xml
xdoc.LoadXml(reMessage);
Response.Write(xdoc.DocumentElement.OuterXml);

获取xml

//获取流
Stream requestStream = Request.InputStream;
byte[] requestByte = new byte[requestStream.Length];
requestStream.Read(requestByte, 0, (int)requestStream.Length); //获取xml包
string temStr = Encoding.UTF8.GetString(requestByte); //将xml文档加载到DOM中
XmlDocument doc = new XmlDocument();
doc.LoadXml(temStr); //获取根节点
Debug.WriteLine(doc.DocumentElement.OuterXml); //获取子节点
XmlNode xmlNode = doc.FirstChild;
if (xmlNode.HasChildNodes)
{
for (int i = 0; i < xmlNode.ChildNodes.Count; i++)
{
Debug.WriteLine(xmlNode.ChildNodes[i].InnerText);
}
} //获取最后一个子节点
Debug.WriteLine(xmlNode.LastChild.OuterXml); //查找节点 xpath方式 或者 GetElementByID检索节点
XmlNode node = doc.DocumentElement.SelectSingleNode("FromUserName");
Debug.WriteLine(node.InnerText);
string openId = node.InnerText; //获取ToUserName
string ToUserName = doc.DocumentElement.SelectSingleNode("ToUserName").InnerText;
string FromUserName = doc.DocumentElement.SelectSingleNode("FromUserName").InnerText;
string CreateTime = doc.DocumentElement.SelectSingleNode("CreateTime").InnerText;
string MsgType = doc.DocumentElement.SelectSingleNode("MsgType").InnerText;
string Content = doc.DocumentElement.SelectSingleNode("Content").InnerText;
string MsgId = doc.DocumentElement.SelectSingleNode("MsgId").InnerText;

发起get请求

//发送http get请求
string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret;
//创建请求
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.ContentType = "application/json;encoding=utf-8"; //获取响应
WebResponse response = req.GetResponse();//未响应
Stream stream = response.GetResponseStream();
//解码数据流
StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("UTF-8"));
string temString = reader.ReadToEnd();
var jObject = JObject.Parse(temString);
var access_token = jObject["access_token"].ToString();//获取time{"time":"2016-06-06 11:11:11"} //JavaScriptSerializer s = new JavaScriptSerializer();
//Dictionary<string, string> dict = (Dictionary<string, string>)s.DeserializeObject(temString);
//string access_token = dict["access_token"]; Console.WriteLine(temString);
//关闭io流
reader.Close();
stream.Close();

发起post请求

//创建请求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;encoding=utf-8";
//request.ContentLength = Encoding.UTF8.GetByteCount(postData); //#region 添加Post 参数(menu需要post的参数)
byte[] data = Encoding.UTF8.GetBytes(menu);
request.ContentLength = data.Length;
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
//获取响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
//解码
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
//响应结果
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
ViewBag.MyMessage = retString;

读取txt文件

//获取菜单内容
FileStream fs1 = new FileStream(Server.MapPath("~/") + "\\App_Data\\menu.txt", FileMode.Open);
StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("GBK"));
string menu = sr.ReadToEnd();
sr.Close();
fs1.Close();

字符串转json

string temString = getUserInfo_Access_token(code);
//转化为json字符串
var json = JObject.Parse(temString);
//获取access_token字段
string access_token = json["access_token"].ToString();

.net+uniapp 前后端数据交互相关问题记录的更多相关文章

  1. 两种方法实现asp.net方案的前后端数据交互(aspx文件、html+ashx+ajax)

    一个HTML页面只能显示HTML代码信息,不能与数据库进行数据的交互.asp.net方案提供了网页与数据库交互的方法,这里举出两种:①aspx文件 ②ashx文件+ajax技术 一.创建数据库 这里以 ...

  2. 对GraphQL-BFF:微服务背景下的前后端数据交互方案的研究-------引用

    随着多终端.多平台.多业务形态.多技术选型等各方面的发展,前后端的数据交互,日益复杂. 同一份数据,可能以多种不同的形态和结构,在多种场景下被消费. 在理想情况下,这些复杂性可以全部由后端承担.前端只 ...

  3. vue-resource的使用,前后端数据交互

    vue-resource的使用,前后端数据交互 1:导入vue与vue-resource的js js下载:   https://pan.baidu.com/s/1fs5QaNwcl2AMEyp_kUg ...

  4. 前后端数据交互处理基于原生JS模板引擎开发

    json数据错误处理,把json文件数据复制到----> https://www.bejson.com/ 在线解析json 这样能直观的了解到是否是json数据写错,在控制台打断点,那里错误打那 ...

  5. web前后端数据交互

    前后端数据交互是每一名web程序员必须熟悉的过程,前后端的数据交互重点在于前端是如何获取后端返回的数据,毕竟后端一般情况下只需要将数据封装到一个jsonMap,然后return就完了.下面通过一个li ...

  6. 前后端数据交互利器--Protobuf

    Protobuf 介绍 Protocol Buffers(又名 protobuf)是 Google 的语言中立.平台中立.可扩展的结构化数据序列化机制. https://github.com/prot ...

  7. 前后端数据交互(八)——请求方法 GET 和 POST 区别

    WEB 开发同学一看 get 和 post 请求方法的区别,第一感觉都是 So easy! 学习ajax.fetch.axios时,发送网络请求携带参数时,都需要分别处理get和post的参数.所以我 ...

  8. SpringMVC前后端数据交互总结

    控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...

  9. Spring MVC前后端数据交互总结

    控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...

随机推荐

  1. HTB::OpenAdmin

    实验环境 渗透过程 0x01 信息搜集 sudo nmap -sS -p1-10000 -sV -sC -T4 10.10.10.171 开放了22(SSH)端口和80(HTTP)端口 访问80端口, ...

  2. Scala 面向对象(四):import

    1 Scala引入包基本介绍 Scala引入包也是使用import, 基本的原理和机制和Java一样,但是Scala中的import功能更加强大,也更灵活. 因为Scala语言源自于Java,所以ja ...

  3. scrapy 基础组件专题(十四):scrapy CookiesMiddleware源码

    一 Scrapy框架--cookie的获取/传递/本地保存 1. 完成模拟登陆2. 登陆成功后提取出cookie,然后保存到本地cookie.txt文件中3. 再次使用时从本地的cookie.txt中 ...

  4. hihoCoder 1040 矩阵判断 最详细的解题报告

    题目来源:矩阵判断 解题思路: 1.判断矩阵的4个点是否相连,一共输入8个点,只要判断是否4个点是否都经过2遍: 2.判断矩阵中任意一条边与其他边之间要么平行,要么垂直.设A(x1,y1),B(x2, ...

  5. [Qt插件]-02创建应用程序插件(插件化开发的一种思路)

    本篇是学习Qt Creator快速入门,插件开发的笔记   分为两部分 创建插件 使用插件的应用程序(测试插件)   插件是被使用的应用程序加载使用的. 是使用插件的应用程序定义接口,插件按照接口来实 ...

  6. Postman安装失败

    https://blog.csdn.net/qq_21282443/article/details/86213972

  7. vue学习(十六) 自定义私有过滤器 ES6字符串新方法 填充字符串

    <div id="app"> <p>{{data | formatStr('yyyy-MM-dd')}}</p></div> //s ...

  8. 面试题六十:n个骰子的点数

    把n个骰子扔在地上,求出现和为s的概率 可得n<=s<=6n 方法:定义6n-n+1长度的数组,然后对所有可能出现的组合进行计算,把结果进行计数存进数组:递归 方法二:动态规划,大问题小化 ...

  9. 面试题二十二:链表中倒数第k个节点

    方法一:双指针法定义两个指针A.B,A先走k-1步后再一起走,直到A.next==null注意: 1.链表为空 2.链表长度小于k 3.k<=0 当题目是求链表的中间节点时,可以两个指针从开头开 ...

  10. 郭的手机出现提示:条码扫描器,抱歉,Android相机出现问题。您可能需要重启设备

    郭的手机出现提示:条码扫描器,抱歉,Android相机出现问题.您可能需要重启设备 ++++++++++++++++++ 原因是系统没有给应用使用摄像头的权限,我到楼下设置对方手机,选择“设置”-&g ...