【问题标题】:How to send a JavaScript object on the server side (ASP NET MVC)?如何在服务器端(ASP NET MVC)发送一个 JavaScript 对象?
【发布时间】:2018-09-01 02:14:22
【问题描述】:

下面是相关代码(客户端JS+jQuery):

function getuser(username, password) {
    var user = new Object();
    user.constructor();
    user.username = username;
    user.password = password;
    //....
    $("#a1").click(function () {
        var u = getuser($("#username").val(), $("#password").val());
        if (u == false) {
            alert("error");
        } else {
            //....
        }
    });
}

问题是如何将var u 发送到服务器端的会话中?

【问题讨论】:

  • 如果您想将其作为整个对象传递,请尝试使用 JSON.stringify() 序列化对象,然后在服务器端对其进行反序列化。在此之前,在服务器端创建一个具有相同字段的对象。如果要单独发送参数,请使用简单的 ajax 调用并在数据中传递参数:{ 用户名:用户名,密码:密码。 }

标签: javascript jquery asp.net-mvc session asp.net-web-api


【解决方案1】:

documentation 例如: 如果您只想做一个简单的帖子,以下可能适合您的需求:

var user = getUser(username, password);
$.post(yourserverurl, user, function(response){console.log("iam a response from the server")});

正如文档所说:

这是等效 Ajax 函数的简写:

    $.ajax({
  type: "POST", 
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

所以在你的例子中:

      $.ajax({
  type: "POST", 
  url: "/mycontroller/myaction",
  data: {user: getUser(username, password)},
  success: function(responseFromServer){//handleResponseHere},
  error: function(xhr){//handleyourerrorsHere}
  dataType: yourdatatype
});

【讨论】:

  • 在这个例子中我需要在get方法中使用。
  • 用get then切换帖子
【解决方案2】:

您可以使用 ajax 来完成此操作。比如:

$.ajax({
      url: "/Controller/Action/",
      data: {
        u: u
      },
      cache: false,
      type: "POST",
      dataType: "html",
      success: function (data) {
        //handle response from server
      }
    });

然后有一个控制器动作来接收数据:

    [HttpPost]
    public ActionResult Action(string u)
    {
      try
      {
        //do work
      }
      catch (Exception ex)
      {
        //handle exceptions
      }
    }

请注意,/controller/action 将特定于您将数据发布到项目中的位置

【讨论】:

    猜你喜欢
    • 2010-12-17
    • 2018-09-22
    • 2020-07-24
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2019-10-06
    • 1970-01-01
    相关资源
    最近更新 更多