Jquery .ajax调用控制器,模型为空

本文关键字:模型 控制器 ajax 调用 Jquery | 更新日期: 2023-09-27 18:09:15

我花了大约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");
                }
            });
         };

Jquery .ajax调用控制器,模型为空

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

尝试将js变量名更改为

 paneContent = {
        ContentType: $("#ContentTypeID").val(),
    }

同样,不要尝试使用GET发送复杂的变量。这行不通。始终使用POST

            type: 'POST',