您的位置:首页 > Web前端 > HTML

使用Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "formInfo" })提交数据的问题

2017-04-05 16:59 477 查看
在程序开发中,发现一个问题,在cshtml中,使用

@using (Html.BeginForm("Save", "ITProject", FormMethod.Post, new { id = "formInfo" }))

的方式将表单的数据,用Ajax的方式传给Controller。

但是发现有时候参数无法传到后台。

例如,Ajax的写法是:

$.ajax({

            url: $("#formInfo").attr("action"),

            data: newProjectInfo,

            type: "post",

            dataType: 'json',

            success: function (r) {

                if (r.state == "success") {

                    $.modalMsg(r.message);

                    $.loading(false);

                }

                else {

                    $.modalAlert(r.message);

                    $.loading(false);

                }

            }

           , error: function (r) {

               $.ajaxErrorProcess(r);

               $.loading(false);

           }

        })

而在Controller中,处理函数的写法是:

        public JsonResult Save(DomainEntities.Models.ITProject.ProjectNewInfo projectInfo)

        {

            try

            {

            _ProjectService.SaveNewProjectInfo(projectInfo);

            return Success("保存成功");

            }

            catch(Exception ex)

            {

                FileLogger.Error("保存信息失败", ex);

                return Error($"保存失败,{ex.Message}");

            }

        }

在调试中发现,有时候Save方法的参数(projectInfo)并没有获得Ajax的data值(newProjectInfo)。

解决方式是:

在调用Ajax是,显示的指定

data: {projectInfo:newProjectInfo}

修改为上述格式后,传值成功。

明白人可以帮助解释一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Html.BeginForm Ajax
相关文章推荐