繁体   English   中英

将数据从JQuery发送到C#,ASP.Net

[英]Sending data from JQuery to C#, ASP.Net

我在.aspx表单页中有一个画布,可以在其中签名。我想将base64数据从JQuery客户端发送到C#Asp.Net端。 在这里,我想将此base64数据上传到数据库。

(我尝试过的几件事)jQuery:

$("#savebtn").bind("click", function () {
    var base64 = $('#sketch')[0].toDataURL("image\png");
    $.ajax({
        url: 'EvaluatieForm.aspx',  // page where i have button listenener
        data: '{ data: "' + base64 + '"}',
        type: 'POST',
        async: true,
        cache: false,
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            console.log("inside sucess");
            console.log("result: " + result);
        },
        error: function (request, error) {
            // This callback function will trigger on unsuccessful action                
            alert('Error!');
        }
    });

$.post("EvaluatieForm.aspx", { data: base64 }); // another thing i tried

C#:

var d = Request.Params["data"];

当我在其上设置断点时,变量d为null。 有人看到我如何解决这个障碍,或者使它变得容易吗? (注意:我对JQuery没有太多的经验)

带有base64的JSON可以作为请求正文使用。

using (StreamReader reader = new StreamReader(context.Request.InputStream))
{
    string text = reader.ReadToEnd();
}

如果您更换

url: 'EvaluatieForm.aspx'

通过

url: 'EvaluatieForm.aspx?data=' + base64 

并删除

data: '{ data: "' + base64 + '"}',

那么它将起作用。

尝试以下操作:在现有代码中做一个很小的更改,使用JSON.stringify发布数据。

$("#savebtn").bind("click", function () {
 var base64 = $('#sketch')[0].toDataURL("image\png");
var objectToPasss = {data: base64};
var postData =JSON.stringify(objectToPasss );
$.ajax({
  url: 'EvaluatieForm.aspx',  // page where i have button listenener
  data: postData,
  type: 'POST',
  async: true,
  cache: false,
  contentType: "application/json; charset=utf-8",
  success: function (result) {
     console.log("inside sucess");
     console.log("result: " + result);
  },
  error: function (request, error) {
  // This callback function will trigger on unsuccessful action                
     alert('Error!');
   }
 });

$.post("EvaluatieForm.aspx", { data: base64 });

尝试这个:

$("#savebtn").bind("click", function () {
 $.ajax({
      url: 'EvaluatieForm.aspx', // page where i have button listenener
      data: {
       sketch: $('#sketch')[0].toDataURL("image\png")
      },
      type: 'POST',
      async: true,
      cache: false,
      contentType: "application/json; charset=utf-8",
      success: function (result) {
         console.log("inside sucess");
         console.log("result: " + result);
      },
      error: function (request, error) {
      // This callback function will trigger on unsuccessful action                
         alert('Error!');
      }
 });

哪里

var d = Request.Params["sketch"];

jQuery ajax()函数中的data参数与contentType结合使用。 当您将其设置为application / json时,则有理由将数据序列化,因此设置sketch变量似乎是正确的。

使用ajax,您可以尝试xhr。

也许这个线程可以帮助您! :)

如何异步上传文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM