Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
C# ajax调用控制器,模型为空_C#_Jquery_Ajax_Asp.net Mvc_Json - Fatal编程技术网

C# ajax调用控制器,模型为空

C# ajax调用控制器,模型为空,c#,jquery,ajax,asp.net-mvc,json,C#,Jquery,Ajax,Asp.net Mvc,Json,我已经花了大约10个小时,读了无数的帖子试图弄明白这一点,但我不得不承认失败,所以希望有一个善良的灵魂能让我改过自新 我试图将数据发送到我的控制器(GET)以返回部分视图。控制器接收到的模型总是空的,尽管我尝试了各种变化。为了保持简单,我将模型简化为一个元素 我错过了什么?(提前感谢) 型号: public class TextContentViewModel { public string ContentType {get; set;} } 控制器: public ActionRes

我已经花了大约10个小时,读了无数的帖子试图弄明白这一点,但我不得不承认失败,所以希望有一个善良的灵魂能让我改过自新

我试图将数据发送到我的控制器(GET)以返回部分视图。控制器接收到的模型总是空的,尽管我尝试了各种变化。为了保持简单,我将模型简化为一个元素

我错过了什么?(提前感谢)

型号:

public class TextContentViewModel
{
    public string ContentType {get; set;}
}
控制器:

public ActionResult Preview(TextContentViewModel paneContent)
{
    return PartialView("_Text");
}
Javascript:

<script type="text/javascript">

    $("#previewButton").click(showPreview);

    function showPreview() {
         content = {
            ContentType: $("#ContentTypeID").val(),
        }
                $.ajax({
                url: '@Url.Action("Preview")',
                type: 'GET',
                contentType: 'application/json',
                data: JSON.stringify(content),
                success: function (result) {
                    $('#preview').html(result);
                },
                error: function (result) {
                    alert("something went wrong");
                }
            });
         };

$(“#预览按钮”)。单击(显示预览);
函数showPreview(){
内容={
ContentType:$(“#ContentTypeID”).val(),
}
$.ajax({
url:“@url.Action(“预览”)”,
键入:“GET”,
contentType:'应用程序/json',
数据:JSON.stringify(内容),
成功:功能(结果){
$('#preview').html(结果);
},
错误:函数(结果){
警惕(“出了差错”);
}
});
};

传入和传出变量应具有相同的名称

尝试将js变量名更改为

 paneContent = {
        ContentType: $("#ContentTypeID").val(),
    }
另外,不要尝试使用
GET
发送复杂变量。那是行不通的。始终使用
POST

            type: 'POST',

尝试从ajax请求中删除
contentType
属性我已经尝试过POST,但不知何故,我忽略了变量名必须相同。我只是觉得酒店的名字应该是一样的。感谢您的帮助,我非常感谢。@Joel不清楚传递的变量名必须匹配。这是因为JSon的编码/解码。欢迎来到SO。希望你也有机会回答问题!