【问题标题】:Update the data in View with AJAX not working使用 AJAX 更新视图中的数据不起作用
【发布时间】:2021-04-28 07:14:29
【问题描述】:

我有不同的<a> 标签,通常使用asp-route="" 将参数传递给操作。现在我想使用 AJAX 来做到这一点。当页面加载时,每个标签都应该传递来自模型chats 的ID。 (asp-route-ChatID="@Model.ID")。 如何在 AJAX 中实现这一点并传递该参数?我尝试使用Data-ajax-update 和Data-ajax-url,但这些选项甚至在 Intellisense 中都不可用。这是我要调用的方法

  public IActionResult Chat(string ChatID)
    {
        Chats userchats=new Chats(); // a class that holds chats
         //selecting data from the database......
        
        return View(userchats);//returns view with the model
    }

这是被点击的<a>标签,它需要传递来自模型的特定ID

<a > View Chat </a>

这里是&lt;div&gt;,需要根据点击的&lt;a&gt;进行更新

    <div id="UpdateThis">  <!--show data that comes from the method ajax calls-->   </div>

如何在此处使用标签助手或任何其他方式实现 ajax?

【问题讨论】:

    标签: ajax asp.net-core .net-core asp.net-core-mvc


    【解决方案1】:

    如果要更新 div,请使用 PartialView 而不是视图。

    public IActionResult Chat(string ChatID)
    {
        Chats userchats=new Chats(); // a class that holds chats
        //selecting data from the database......
            
        return PartialView(userchats);//returns view with the model
    }
    

    查看

    <a id="btnView" data-id="1">View Chat</a>
    <div id="UpdateThis"></div>
    
    <script>
       $("#btnView").click(function () {
          $.post('@Url.Action("Chat")', { ChatID: $(this).data("id") }).done(function (e) {
              $("#UpdateThis").html(e);
          })
       });
    </script>
    

    【讨论】:

    • 感谢您的帮助。如果该部分视图在另一个视图(主视图)内但它们有不同的模型怎么办?
    • Data-id 可由用户编辑。如果他们编辑 ID,我就搞砸了。有没有办法让信息留在服务器端?
    • 你可以像 { ChatID: @Model.ID } 这样使用。
    • 可以在局部视图中使用其他模型。基于你的@model。
    猜你喜欢
    • 1970-01-01
    • 2013-08-23
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2016-08-31
    • 1970-01-01
    • 2018-03-11
    相关资源
    最近更新 更多