gpt4 book ai didi

.NET/MVC JSON 响应打开对话框进行保存

转载 作者:行者123 更新时间:2023-12-01 03:29:29 24 4
gpt4 key购买 nike

我正在尝试在 .net mvc 应用程序中通过 jquery 的 ajax 方法提交表单。我已将 dataType 设置为 json,将 contentType 设置为“application/json; charset=utf-8”。在我的 Controller 操作中,我返回一个 JsonResult。

由于某种原因,JSON 响应无法正确处理,而是出现一个对话框来保存其中包含 JSON 对象的文件。

$(document).ready(function() {

$("#editPageContentForm").submit(function() {

$.ajax(
{
type: "POST",
dataType: "json",
url: $("#editPageContentForm").attr("action"),
contentType: "application/json; charset=utf-8",
data: { ID: $("#id").val(), small_title: $("#small_title").val(), big_title: $("#big_title").val(), body: $("#body").val(), subheading: $("#subheading").val() },

success: function(result) {
alert('hi');
},

error: function(req, status, error) {
alert("Sorry! We could not receive your feedback at this time.");
}
}
);
})

在我的 Controller 操作中,我有类似的内容:

public JsonResult Edit(int id, string small_title, string big_title, string subheading, string body)
{
return Json(new {success = true, message = "success"});
}

为什么响应没有以 JSON 形式返回?

最佳答案

以 JSON 形式返回。但由于您是在表单提交中执行此操作,因此浏览器需要 HTML。浏览器不知道如何直观地呈现 JSON,因此它会提示您保存。请注意,此时您的 jQuery 代码不再运行,因为当浏览器 POST 时,包含表单的页面已被卸载。

尚不完全清楚您的意图,但如果您想用仅 AJAX 提交完全替换非 AJAX 提交,请尝试将代码更改为:

$("#editPageContentForm").submit(function(event) {
event.preventDefault();
$.ajax(
{
type: "POST",
dataType: "json",
url: $("#editPageContentForm").attr("action"),
contentType: "application/json; charset=utf-8",
data: { ID: $("#id").val(), small_title: $("#small_title").val(), big_title:
$("#big_title").val(), body: $("#body").val(), subheading:
$("#subheading").val() },
success: function(result) {
alert('hi');
},
error: function(req, status, error) {
alert("Sorry! We could not receive your feedback at this time.");
}
} );

关于.NET/MVC JSON 响应打开对话框进行保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1357901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com