当前位置: 首页 > 面试题库 >

在ASP.NET MVC中使用AJAX刷新表

祁绪
2023-03-14
问题内容

我想使用Ajax更新MVC中的表格。我已经使用ajax在数据库中插入了数据。我只想在插入新行后更新表。

PS。我尝试搜索,但没有任何帮助,我仍然感到困惑。

Here is my code:

Main page View:

<div id="theTable">
    @Html.Partial("_IPTable") 
</div>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="~/Scripts/Admin.js"></script>"`

Partial page View:

<table id="table">`
    <tr>
        <th>ID</th>
        <th>Line</th>
        <th>Supplier</th>
    </tr>

    @foreach (var item in ViewBag.IPTable)`
    {
       <tr>
            <td>
                @item.ID
            </td>
            <td>
                @item.Line
            </td>
            <td>
                @item.Supplier
            </td>
        </tr>

    }
</table>enter code here

Controller view:

public ActionResult Admin()
        {
            // get data from database
            return View();
        }
public ActionResult _IPTable()
        {

            return PartialView();
        }

用于插入新记录的Ajax代码:

 <script>
$(document).ready(function () {
//function will be called on button click having id btnsave
$("#btnSave").click(function () {
    $.ajax(
    {
        type: "POST", //HTTP POST Method
        url: "AdminInsert", // Controller/View
        data: { //Passing data
            //Reading text box values using Jquery
            Line: $("#txtLine").val(),
            Supplier: $("#txtSupplier").val()
        }
    });
});

}); </script>

问题答案:

您可以创建一个操作方法,该方法返回呈现表所需的HTML标记。让我们创建一个视图模型,通过该模型我们将传递表数据。

public class ItemVm
{
  public string ItemId {set;get;}
  public string Line {set;get;}
  public string Supplier {set;get;}
}

现在,在您的操作方法中,从表中获取数据,加载到我们的视图模型类的列表中并发送到视图。由于我不确定您的表结构/数据访问机制。我要对这些项目进行硬编码。您可以将其替换为真实数据。

public ActionResult TableData()
{
  var items = new List<ItemVm>{
      new ItemVm { ItemId="A1", Line="L1", Supplier="S1" },
      new ItemVm { ItemId="A2", Line="L2", Supplier="S2" }    
  };
  return PartialView("TableData",items);
}

现在,确保将部分视图强类型化为我们的视图模型的集合

@model List<ItemVm>
<table>
@foreach(var item in Model)
{
  <tr><td>@item.ItemId</td><td>@item.Line</td></td>@item.Supplier</td></tr>
}
</table>

现在您所要做的就是调用此action方法并使用返回的响应来更新DOM。您可以success在要插入新记录的ajax调用的事件处理程序中执行此操作。您可以使用jQuery
load方法来更新DOM中的相关元素。

$(document).ready(function () {
   $("#btnSave").click(function () {

    $.ajax(
    {
        type: "POST", //HTTP POST Method
        url: "AdminInsert", // Controller/View
        data: { //Passing data
            //Reading text box values using Jquery
            Line: $("#txtLine").val(),
            Supplier: $("#txtSupplier").val()
        }
    }).success(function() {
           $("#theTable").load("/YourControllerName/TableData");
       });
});

现在,对于初始视图,您可以使用我们的新局部视图。但是,由于它ItemVm需要的列表,因此您需要显式传递它,而不是通过ViewBag传递它。



 类似资料:
  • 问题内容: 我正在尝试使用AJAX和JQuery(在Django中)刷新页面的特定部分。如何获取仅重新显示div而不重新显示整个页面的信息。 这是我的看法。 当前,它将整个html页面放入#tag_page div中。我希望它用新的#tag_page div替换旧的#tag_page div。如果替换为它,则将整个页面刷新到应有的状态,但是我认为刷新整个页面是一种浪费。 如果有更好的方法,请告诉我

  • 问题内容: 这可能是一个简单的问题,但我很困惑,只是不知道从哪里开始。 我有一个PHP脚本(image_feed.php),该脚本返回图像的URL。每次调用此UR1时,它都会返回可用的最新图像(该图像每隔几秒钟更改一次)。 我想发生的是,当页面加载时,有一个对image_feed.php的AJAX调用,该调用返回了最新的URL。然后将该UR1插入HTM1,以替换适当的图像src。 5秒后,我希望重

  • 问题内容: 我正在尝试将此代码添加到我的WooCommerce设置中,以在我放置PHP的任何地方添加购物车链接,然后在使用AJAX更改购物车中的商品时对其进行更新:https : //docs.woocommerce.com/document/show- 购物车内容总计/ 以下是片段: HTML-PHP: 在文件中: 但是AJAX无法正常工作。是我需要添加到functions.php中的第二个片段

  • 问题内容: 首先,我是Django的新手,几乎完全不熟悉AJAX和jQuery。 我在本地开发。 因此,我正在尝试实现一个HTML表,该表在AJAX的帮助下每X秒钟动态刷新一次(无需页面刷新),但是我似乎无法使我的代码正常工作。 (如果我有足够的代表,我可能会回答这个问题,或者从聊天中寻求帮助,但我还没有那么高兴) 我一直在努力使它工作10多个小时,而我开始感到无助。我一直在疯狂地搜索网络,但是这

  • 作为我之前关于使用Thymeleaf和防止页面刷新的问题的后续: http://forum.thymeleaf.org/Preventing-page-refresh-Thymeleaf-amp-Spring-MVC-td4029155.html 基本上,我有一个工作的Spring MVC应用程序,它使用Thymeleaf来保存表单数据。当用户保存数据时,页面将刷新(因为我想把它们留在页面上进行更

  • 问题内容: 我正在开发一个新项目http://www.hotwirerevealed.com,该项目可以在hotwire.com上显示/识别酒店。输入状态和目的地后,我有了一个使用jquery的.post方法发布的javascript函数。发布请求转到输出html的php页面,我使用jquery的html方法将内容放置在页面上。 像这样 我有超链接,指向要在灯箱中使用的酒店 我试图使用jQuery