Ajax POST 到控制器操作以更新视图模型,然后重新加载 div

2024-04-01

我仍然对 ajax 的使用感到不安,所以我的实现中存在一些漏洞。我正在尝试发布到一个控制器操作,该操作将调用存储过程来更新我的视图模型,然后重新加载将显示信息的 div。

阿贾克斯帖子:

$("#order-summary-panel").click(function(){
    $.ajax({
        url: '@Url.Action("GetOrderSummary", "Home")',
        type: 'POST',
        success: function() {
          alert("It Worked!")
        }
    });
});

控制器动作:

[HttpPost]
public ActionResult GetOrderSummary
{
    using (var entity = new OrderEntities())
    {
         var user = User.Identity.Name;
         var orderSummary = entity.uspGetOrderSummary(user).ToList();
         var viewModel = new OrderViewModel
         {
             OrderSummary = orderSummary
         };

         return View("Index", viewModel)
    }
}

要重新加载的 Div:

<div id="order-summary-panel">
    @if (Model != null && Model.OrderSummary != null)
    {
        foreach (var order in Model.OrderSummary)
        {
         // Display Orders
        }
    }
</div>

我相信我不应该返回完整视图,但我不确定如何在不这样做的情况下更新视图模型。任何帮助,将不胜感激。


您可以返回 PartialView 并将结果放入 div 中,例如:

部分视图

[HttpPost]
public ActionResult GetOrderSummary
{
    using (var entity = new OrderEntities())
    {
         var user = User.Identity.Name;
         var orderSummary = entity.uspGetOrderSummary(user).ToList();
         var viewModel = new OrderViewModel
         {
             OrderSummary = orderSummary
         };

         return PartialView("Index", viewModel);
    }
}

在你的 JavaScript 中:

$("#order-summary-panel").click(function(){
    $.ajax({
        url: '@Url.Action("GetOrderSummary", "Home")',
        type: 'POST',
        success: function(data) {
            if (data) {  // check if data is defined
               $("#order-summary-panel").html(data);
            }
        }
    });
});

Json

您也可以尝试返回json操作 html(可以提高性能),例如:

[HttpPost]
public ActionResult GetOrderSummary
{
    using (var entity = new OrderEntities())
    {
         var user = User.Identity.Name;
         var orderSummary = entity.uspGetOrderSummary(user).ToList();
         var viewModel = new OrderViewModel
         {
             OrderSummary = orderSummary
         };

         return Json(new { success = true, order = viewModel }, JsonRequestBehavior.DenyGet);
    }
}

在你的 Javascript 中,你可以尝试读取这些属性:

$("#order-summary-panel").click(function(){
    $.ajax({
        url: '@Url.Action("GetOrderSummary", "Home")',
        type: 'POST',
        success: function(data) {
            if (data) {  // check if data is defined
               if (data.success) { // if success is true
                   alert("It Worked!"); 
                   // you could read data.order
               }
            }
        }
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ajax POST 到控制器操作以更新视图模型,然后重新加载 div 的相关文章

随机推荐

  • 如何将距离从度转换为米?

    我将 OpenLayers 与普通墨卡托地图一起使用 并尝试通过查找经纬度中的点网格来对边界框进行采样 bbox 以 latlon 表示 例如 48 1388 15 3616 55 2057 3 9359 我可以定义一个距离degrees
  • 为什么 sizeof int 是错误的,而 sizeof(int) 是正确的?

    我们知道sizeof是一个运算符 用于计算任何数据类型和表达式的大小 当操作数是表达式时 可以省略括号 int main int a sizeof int sizeof int sizeof a sizeof a return 0 的第一次
  • Java 反射、类对象

    我的目标是在命令行中读入我希望观察其信息的类的名称 当我在运行前知道类名时 就没有问题了 我似乎无法管理的是如何根据字符串输入创建类对象 public class Tester static void methodInfo2 Object
  • jQuery Ajax 发布 - 404 错误

    我正在发布到 ActionMethod 以检索一些客户计数 该帖子在我的本地机器上运行良好 当部署到另一台服务器时 它会抛出 404 错误 我的帖子如下 我不知道为什么这已经停止工作了 var urlStr Items ItemCount
  • mongodb中db.collection.find()的返回类型是什么

    我正在尝试从 mongodb 连接读取 find 函数的输出 我想将数据库结果存储到 JSON Array 中 称为结果 如下所示 collection db collection users result collection find
  • 从 SQL Server 2005 读取 MS Excel 文件

    我需要从 SQL Server 2005 中的查询读取 Microsoft Excel 2003 文件 xls 然后将其中一些数据插入到一些表中 读取文件然后使用其数据本身并不是问题 但我发现 对于列 有时我会得到 NULL 值 而不是 E
  • 带有 jquery 的 IE 复选框无法正常工作

    我正在尝试在页面上使用多个 asp net 复选框 并相应地禁用它们
  • 完全模态的 WPF 窗口?

    我有一个要求 指定使用 WPF 的通知托盘应用程序必须 基于某些条件 弹出一个全局模式的窗口 这应该阻止用户执行任何操作 即使在 Tray 应用程序之外 直到他们满足一些其他条件 此时它将启用关闭按钮并允许用户将其关闭 如何制作这样一扇窗户
  • 我应该如何正确删除 TFS 分支?

    我想知道我应该如何正确地摆脱不再有任何用途的分支 现在 即使我删除它们并提交 它们仍然在特定分支根 目录 的属性窗口中列为分支 如果我选择合并 我不会选择合并到已删除的分支 这显然是符合预期的 但因此我对属性窗口中仍然显示的分支感到困惑 对
  • 如何在 WP8 地图上创建自动缩放图像

    我正在尝试向地图添加多个图钉 当您缩小到足够大时 图钉就会消失 以使图钉变得如此小 以至于不再渲染它们 我通过以下代码成功实现了这种效果 MapPolygon shape new MapPolygon GeoCoordinateCollec
  • 类型的无效操作数 - C++

    我有一个名为 ThreeDigits 的 C 代码类 我这样重载了 操作数 ThreeDigits ThreeDigits operator const ThreeDigits number const double result getN
  • MongoDB:查询名称中包含空格的键

    我只想从 MongoDB 集合中检索某些键的值 但是 该集合有一些名称中带有 空格 的键 例如 Parent key1 some string key2 some string key 3 some string 我知道这是一种错误的方法
  • 调用未定义函数 Intervention\\Image\\Gd\\imagecreatefromjpeg() - laravel

    我收到此错误消息 Call to undefined function Intervention Image Gd imagecreatefromjpeg 这是我的 php 信息 http behika com http behika co
  • 使用什么:var 还是对象名称类型? [复制]

    这个问题在这里已经有答案了 这是我在编程时总是想知道的一个问题 当我们编写代码时该使用什么 var myFiles Directory GetFiles fullPath or string myFiles Directory GetFil
  • 对于颜色逐渐变化的多个绘图,显示 matplotlib 颜色条而不是图例

    我正在尝试制作一个简单的图 显示属于具有特定顺序的大型数据集的许多曲线 比方说图 1 n 曲线的形状随着n的增加而逐渐变化 读者能否准确地看到哪个图属于 n 的哪个值并不重要 但他们应该能够猜测 n 的数量级 因此我做了这样的事情 nVal
  • 如何在 Scala 编译器插件中生成文本形式的新源代码?

    我刚刚完成了 Java 6 编译器插件的第一个版本 它根据注释自动生成包装器 代理 适配器 委托 您可以随意称呼它 由于我正在进行 Java Scala 混合项目 因此我希望能够在 Scala 代码中使用相同的注释 并获得相同的生成代码 当
  • 如何导航到 Clion 链接库中的源代码?

    我有一个链接多个静态库的项目 例如 libModule a 当我尝试导航到模块库内的类时 Clion 仅将我带到标头声明并在那里停止导航 我希望能够深入研究模块库内函数的定义 我遇到了同样的问题 这就是我所做的 在 Clion 中 我通过在
  • Angular2 错误 TS1146:需要声明

    Angular2 新手 我正在使用 Angular io 中的种子文件 但是当我运行 npm start 时 出现 tsc 编译器错误 tsc p src src app app module ts 11 3 错误 TS1146 需要声明
  • 向几何体添加细分

    我正在尝试向球体添加细分 如下所示 http stemkoski github com Three js Subdivision Cube html http stemkoski github com Three js Subdivisio
  • Ajax POST 到控制器操作以更新视图模型,然后重新加载 div

    我仍然对 ajax 的使用感到不安 所以我的实现中存在一些漏洞 我正在尝试发布到一个控制器操作 该操作将调用存储过程来更新我的视图模型 然后重新加载将显示信息的 div 阿贾克斯帖子 order summary panel click fu