【问题标题】:MVC 3 - Display Dialog Popup in ActionResultMVC 3 - 在 ActionResult 中显示对话框弹出窗口
【发布时间】:2014-11-05 21:55:53
【问题描述】:

首先让我说我对 MVC 很陌生;我继承了我公司的一个应用程序,并且正在对编辑功能进行更改。在这种情况下,我们在允许用户编辑记录之前检查数据库中的现有记录。最初,我们显示一个错误,指出该项目已存在。我试图实现的更改是显示一条消息,提醒用户存在具有相同信息的项目,然后让他们选择覆盖现有数据或完全取消,但前提是选择了某个选项。

        [HttpPost]
        public ActionResult Edit(EditModel details)
        {
            var editItem = new Object();

            var existingItem = db.GetItem(User.ID, editItem.Number);
            if (existingItem != null)
            {
                if (existingItem.Option == 0)
                {
                    // Display confirmation and then continue with edit if yes, if no then cancel
                }
                else
                {
                    ModelState.AddModelError("", "Error");
                    return View(details);
                }
            }

            //Continue operation
        }

有没有办法实现 jQuery 或某种 javascript 调用来实现这一点?还是有更好的方法来做到这一点?我愿意接受建议,并且可以提供任何必要的信息来阐明我想要完成的事情。提前致谢!

【问题讨论】:

  • 有很多方法可以做到这一点。 JavaScript 只是一种选择。另一种选择是使用“覆盖”按钮返回不同的视图,该按钮发布到“覆盖”操作。这是一个相当广泛的问题。
  • @AntP 我认为这将是一个广泛的问题。我相信有很多可能的方法可以做到这一点。我只是在寻找关于我可以做什么的建议或示例,因为此时我什至不确定该去哪里,或者什么是理想的解决方案。

标签: javascript jquery .net asp.net-mvc .net-4.5


【解决方案1】:

我会在您有评论的行中返回一些 json,例如“Exists”“// 显示确认,如果是,则继续编辑”

return Json("Exists");

然后在您的发布请求中,我会检查该响应并使用对话框(如果存在)

$.post(url,{id:$id}, 
function(data){
     if(data == "Exists")
          showDialog();
});

这就是我的处理方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多