javascript - 通过 ajax 调用将 Html 字符串从 View 传递到 Controller

标签 javascript c# jquery ajax asp.net-mvc

我有一个要求,需要将 div 标签的所有 HTML 传递给 Controller ​​。 我能够获取 HTML,但是当我通过 ajax 传递 HTML 时代码失败。

这是我的代码。

查看:

function abc() {

  var html = $("#div").html();

  data = {
    Html: html
  };

  $.ajax({
        url: '@Url.Action("DisplayResult", "Default")', //
        data: data,
        type: "POST",
        contentType: "application/json; charset=utf-8",
        success: function(result) {
          //do something
        });
    },
    error: function(xhr) {
      alert("error");
    }
});
}

我的 Controller 操作方法:

[HttpPost]
public FileResult DisplayResult(string Html)
{
    return null;
}

我在网上搜索并找到了一些相关的帖子,但这些帖子讨论的是不同的解决方案,例如使用 Html.Beginform() 和提交按钮 - 但这些解决方案都不适合我的需要。

最佳答案

您有 JavaScript 错误,并且您的调用是错误的,您需要对数据进行字符串化。

function abc() {
  var html = $("#div").html();
  var dataToSend = JSON.stringify({ 'Html': html });
    
  $.ajax({
    url: '/Home/DisplayResult', //
    data: dataToSend,
    type: "POST",
    contentType: "application/json; charset=utf-8",
    success: function (result) {
      // Do something
    },
    error: function(xhr) {
      alert("error");
    }
  });
}
    
    

我在 HomeController 中有这个:

[HttpPost]
public FileResult DisplayResult(string Html)
{
  return null;
}

关于javascript - 通过 ajax 调用将 Html 字符串从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52211199/

相关文章:

javascript - 当我使用另一个模块类时,如何修复 "TypeError: Right-hand side of ' instanceof' is not callable"?

javascript - ExtJS 3.4 - 有 xtype : 'displayfield' show updated value?

c# - 使用 ServiceStack 反序列化数组

c# - 具有点对点功能的实时视频

jQuery 显示/隐藏动画,保持对象的高度直到动画完成

jquery - 如何使用ajax更新kendo.observable对象使用的数据?剑道用户界面

javascript - 函数名作为对象值

javascript - "npm run build"模块解析错误"You may need an appropriate loader to handle this file type."

c# - 将项目添加到已排序的 observablecollection

javascript - 如何在另一个页面中加载从ajax接收到的数据?