Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JSONEditor将编辑后的JSON文件保存到web服务器?_Javascript_Html_Json_Ajax_Asp.net Web Api - Fatal编程技术网

Javascript 如何使用JSONEditor将编辑后的JSON文件保存到web服务器?

Javascript 如何使用JSONEditor将编辑后的JSON文件保存到web服务器?,javascript,html,json,ajax,asp.net-web-api,Javascript,Html,Json,Ajax,Asp.net Web Api,我使用JSONEditor()加载一个json文件,进行更改并保存该文件。这非常有效,但它仅将JSON文件保存到根据浏览器设置指定的文件夹中。下面是演示代码(): 我用邮递员测试了一下,效果很好。在我的一生中,我似乎不能做的是现在将编辑过的JSON文件发送到控制器。这里是修改后的HTML页面,我尝试在其中发送json失败。为简洁起见,我将添加额外/编辑的代码: <form id="form1" method="post" enctype="text/plain" action="http:

我使用JSONEditor()加载一个json文件,进行更改并保存该文件。这非常有效,但它仅将JSON文件保存到根据浏览器设置指定的文件夹中。下面是演示代码():

我用邮递员测试了一下,效果很好。在我的一生中,我似乎不能做的是现在将编辑过的JSON文件发送到控制器。这里是修改后的HTML页面,我尝试在其中发送json失败。为简洁起见,我将添加额外/编辑的代码:

<form id="form1" method="post" enctype="text/plain" action="http://localhost:1651/api/values">
    <input type="file" name="json" id="loadDocument" value="Load"/>
    <input type="submit" value="Save" />
</form>

请帮忙!如何将json发送到控制器?

ajax或回发基本上是您的两个选项。您需要从编辑器(
editor.getText()
maybe?)获取数据,然后将数据发送到服务器。然后服务器端脚本可以将其保存在服务器上的某个位置。不要考虑上传一个“文件”,因为你的页面中没有一个——这只是在下载过程中创建的。您在编辑器中实际得到的是一些纯文本,所以只需发送它(无论如何,实现起来要简单得多)。服务器可以在其磁盘上创建文件并将文本插入其中。非常感谢您的回复。你的建议听起来是最好的选择。我为我的无知道歉,但是我如何才能将文本发送回服务器并让服务器将文本保存为JSON文件呢?我主要使用C#,但不限于此。ajax调用(在页面中使用Javascript)或传统表单回发是发送数据的两个基本选项。如果您熟悉C#,那么在服务器端实现ASP.NET Web API或MVC控制器可能是接收和处理数据的最佳选择。根据经验,如果您通过ajax发送数据,那么只返回JSON响应(而不是HTML)的Web API控制器可能是最佳选择。如果您想将数据发回并用新的HTML刷新页面,那么使用MVC可能是一个更好的选择,感谢目前为止的建议。我创建了一个WEB API控制器,它接受表单数据并将其保存为JSON。以下是控制器代码:您不能从单击事件“返回”数据,数据不会去任何地方。你认为你要把它送到哪里?如果希望通过普通回发发送,则需要将该值写入文本(或隐藏)字段(并确保在表单提交之前执行)。基本上,ajax或回发是您的两个选项。您需要从编辑器(
editor.getText()
maybe?)获取数据,然后将数据发送到服务器。然后服务器端脚本可以将其保存在服务器上的某个位置。不要考虑上传一个“文件”,因为你的页面中没有一个——这只是在下载过程中创建的。您在编辑器中实际得到的是一些纯文本,所以只需发送它(无论如何,实现起来要简单得多)。服务器可以在其磁盘上创建文件并将文本插入其中。非常感谢您的回复。你的建议听起来是最好的选择。我为我的无知道歉,但是我如何才能将文本发送回服务器并让服务器将文本保存为JSON文件呢?我主要使用C#,但不限于此。ajax调用(在页面中使用Javascript)或传统表单回发是发送数据的两个基本选项。如果您熟悉C#,那么在服务器端实现ASP.NET Web API或MVC控制器可能是接收和处理数据的最佳选择。根据经验,如果您通过ajax发送数据,那么只返回JSON响应(而不是HTML)的Web API控制器可能是最佳选择。如果您想将数据发回并用新的HTML刷新页面,那么使用MVC可能是一个更好的选择,感谢目前为止的建议。我创建了一个WEB API控制器,它接受表单数据并将其保存为JSON。以下是控制器代码:您不能从单击事件“返回”数据,数据不会去任何地方。你认为你要把它送到哪里?如果希望通过正常回发发送,则需要将该值写入文本(或隐藏)字段(并确保在表单提交之前写入)。
// POST api/values
    public async void Post()
    {
        string json = await Request.Content.ReadAsStringAsync();
        File.WriteAllText(
            HttpContext.Current.Server.MapPath("~\\App_Data\\somefile.json"),
            json
        );
    }
<form id="form1" method="post" enctype="text/plain" action="http://localhost:1651/api/values">
    <input type="file" name="json" id="loadDocument" value="Load"/>
    <input type="submit" value="Save" />
</form>
document.getElementById('saveDocument').onclick = function () {
    return editor.getText();
  };