【问题标题】:JSON Doesn't perform the edit action in MVCJSON 不执行 MVC 中的编辑操作
【发布时间】:2016-10-27 04:17:13
【问题描述】:
[HttpGet]
    [LogInFilter]
    public PartialViewResult MemberEdit(Int32 MemID)  // Update PartialView  
    {
        MemberTbl Mem = db.MemberTbls.Where(x => x.ID == MemID).FirstOrDefault();
        MemberTbl MemInfo = new MemberTbl();

        MemInfo.ID = Mem.ID;
        MemInfo.Name = Mem.Name;
        MemInfo.Post = Mem.Post;
        MemInfo.Phone = Mem.Phone;

        return PartialView(MemInfo);
    }

    [HttpPost]
    [LogInFilter]
    public JsonResult MemberEdit(GarhwalBhawan.Models.MemberTbl MemID)  // Record Update 
    {

        MemberTbl MemDt = db.MemberTbls.Where(x => x.ID == MemID.ID).FirstOrDefault();

        if (ModelState.IsValid)
        {
            MemDt.Name = MemID.Name;
            MemDt.Post = MemID.Post;
            MemDt.Phone = MemID.Phone;
            db.SaveChanges();
            myMessage = "Success";
        }

        else
        {
            myMessage = "Failed";
        }
        return Json(myMessage, JsonRequestBehavior.AllowGet);
    }

我的控制器中有上述 ActionResult。现在我想在 ID 的帮助下用 JSON 保存字段。 单击该按钮,我创建了以下 JQuery 方法。

  $(document).ready(function () {
        $('#memberSave').click(function () {
            var Name = $("#Name").val();
            var Post = $("#Post").val();
            var Phone = $("#Phone").val();

            var Member = {
               "Name": Name, "Post": Post,
                "Phone": Phone
            };
            $.post("/Admin/MemberEdit", Member,
            function (data) {
                if (data == "Success") {
                    window.location.href = 'MemberView';
                }
                else if (data == "Failed") {
                    alert('Cannot Save!! Please Fill all Details or Contact Support')
                }

                else {
                    alert(data);
                }
            }, 'json');

        });
    });
Thus I've created a button:-
 <input id="memberSave" type="button" value="Save Changes" />

但单击此按钮时显示错误:- 加载资源失败:服务器响应状态为 500(内部服务器错误) 并提醒我:- alert('无法保存!请填写所有详细信息或联系支持人员')。

请帮忙。

【问题讨论】:

  • 你需要学会调试你的代码!打开您的浏览器工具(网络选项卡)并查看响应 - 它将包含错误的详细信息。你的代码可以简单地是$.post("/Admin/MemberEdit", $('form').serialize(), function (data) {。但这有什么意义 - 如果成功,您只想重定向,所以不要使用 ajax - 进行正常提交。
  • 而且您几乎肯定会发生错误,因为您从未传递 ID 属性的值,因此 MemID.ID 是 0 和 MemDt 因此是 null 和 MemDt.Name = MemID.Name; 抛出 NullReferenceException
  • 在上面的代码中 $('form').serialize() 会做什么?
  • 它将替换您的 $('#memberSave').click(function () { 函数的前 7 行 :) - 当已经有一个函数可以为您正确完成所有这些代码时,编写所有代码是没有意义的
  • 您不能只编辑您的问题以现在显示正确的代码 - 它不再是一个问题! (我已经回滚了你的更改)

标签: jquery sql-server json asp.net-mvc


【解决方案1】:

您没有将参数“ID”放入参数“Member”中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多