Ajax请求产生内部服务器错误

时间:2014-03-09 17:47:48

标签: jquery ajax json asp.net-mvc-4 serialization

我正在使用ace编辑器在浏览器上启用代码编辑。现在,当用户点击它时有一个保存功能我使用ajax请求将代码从编辑器发送回服务器。但是我在检查浏览器的控制台时遇到内部服务错误。

Ajax客户端代码

$('#save-button').click(function () {

            $.post('/CodeEditor/SaveFile',
            {
                'file': $('#current-file').val(),
                'content': editor.getValue()
            }, function () {

            },
            'JSON');
});

Ajax服务器代码

    [HttpPost]
    public ActionResult SaveFile(string file, string content)
    {
        return null;
    }

以下是我在内容参数

中通过Ajax提交的文件内容
@model IList<ShopifyHome.Models.TemplatePartial>

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>ModifyTemplate</title>
    <link rel="stylesheet" type="text/css" href="../../Content/aciTree    /css/aciTree.css" media="all" />
    <link rel="stylesheet" type="text/css" href="../../Content/aciTree/css/demo.css" media="all" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    @*<script type="text/javascript" src="../../Content/aciTree/js/jquery.min.js"></script>*@
    <script type="text/javascript" src="../../Content/aciTree/js/jquery.aciPlugin.min.js"></script>
    <script type="text/javascript" src="../../Content/aciTree/js/jquery.aciTree.core.js"></script>
    <script type="text/javascript" src="../../Content/aciTree/js/jquery.aciTree.selectable.js"></script>
    <script type="text/javascript" src="../../Content/aciTree/js/jquery.aciTree.checkbox.js"></script>
    <script type="text/javascript" src="../../Content/aciTree/js/jquery.aciTree.radio.js"></script>
    <style type="text/css">
    #frame-div
    {

        }

    #style-div
    {
        width:250px;
        float:right;
        height:50%;
        margin: auto auto; ...

当文件内容像

一样简单时,请求会通过并在服务器端收到
This is text

1 个答案:

答案 0 :(得分:0)

终于开始工作了。不得不对html进行编码,然后在服务器端对其进行解码。

客户端代码

$.post('/CodeEditor/SaveFile',
{
    'file': $('#current-file').val(),
    'content': encodeURIComponent(editor.getValue())
},
function () {
},
"JSON");

服务器代码

[HttpPost]
public ActionResult SaveFile(string file, string content)
{
    content = HttpUtility.UrlDecode(content);
}