繁体   English   中英

AJAX POST到MVC5的操作方法

[英]AJAX POST to MVC5 action method

我正在尝试将JSON对象的列表发布到控制器,我一直在尝试遵循此帖子使用jQuery Ajax将对象列表传递到MVC控制器方法中但是,我在控制台中收到一条错误消息,指出甚至找不到资源尽管该动作在控制器中,并且我向其传递了正确的参数,所以该动作方法不会碰到断点。

[HttpPost]
    public ActionResult EditWidget(List<SaveWidgetModel> widget)
    {
        if (ModelState.IsValid)
        {
            foreach (var item in widget) 
            {
                var targetWidget = db.widgets.Where(EditWidget => EditWidget.WidgetCode == item.id).FirstOrDefault();
                targetWidget.x = item.x;
                targetWidget.y = item.y;
                targetWidget.height = item.height;
                targetWidget.width = item.height;

                db.Entry(targetWidget).State = EntityState.Modified;
                db.SaveChanges();
            }

            return RedirectToAction("Index");
        }
        return new EmptyResult();
    }

这是我的JavaScript代码

function SaveDashboard(){
    var gridArray = _.map($('.grid-stack .grid-stack-item:visible'), function (el) {
        el = $(el);
        var gridID = el.find('.grid-stack-item-content.ui-draggable-handle').first().attr('id');
        var node = el.data('_gridstack_node');
        return {
            id: gridID,
            x: node.x,
            y: node.y,
            width: node.width,
            height: node.height
        };
    });

    gridArray = JSON.stringify({ 'widget' : gridArray});

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        url: 'Dashboard/EditWidgets/',
        type: 'POST',
        data: gridArray,
        success: function (dataset) {
        },
        failure: function (xhr, error) {
            console.log(xhr)
            console.log(error)
        },
    });
}

您的控制器动作是单数

public ActionResult EditWidget()

但是您的AJAX调用是复数形式

url: 'Dashboard/EditWidgets/

这可能与您的网址有关:

url: 'Dashboard/EditWidget/',

也许尝试

url: '/Dashboard/EditWidget/',

正斜杠告诉它从根开始搜索,我认为它是在顶层寻找文件夹

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM