Ajax调用成功后,部分视图无法正确呈现

问题描述

因此,在初始加载时,页面加载的所有数据都可以很好地加载...一旦我执行ajax调用并将数据带回..而不是填充我的局部视图..它只是将json填充到div ...

public JsonResult UpdateSerialNumber(string serialNumber)
        {

            string connectionstring = configuration.GetConnectionString("DataBase");
            using (SqlConnection connection = new SqlConnection(connectionstring))

            {
                string query = "Insert Into SerialNumbers (SerialNumber)" +
            "Values('" + serialNumber + "')";

                SqlCommand command = new SqlCommand(query,connection);
                connection.Open();
                command.ExecuteNonQuery();
             }

            SqlConnection con = new SqlConnection(connectionstring);
            string sql = "select * from SerialNumbers";
            con.Open();
            SqlCommand cmd = new SqlCommand(sql,con);
            cmd.CommandType = CommandType.Text;
            DataTable dt = new DataTable();
            SqlDataAdapter ad = new SqlDataAdapter();
            ad.SelectCommand = cmd;
            ad.Fill(dt);
            con.Close();
            SerialNumbers sNum = new SerialNumbers();
            string[] serialArray = dt.Rows.OfType<DataRow>().Select(k => k[1].ToString()).ToArray();

            List<SerialNumbers> serial = serialArray.Select(s => new SerialNumbers { SerialNumber = s }).ToList();

            SingleStageTerminal term = new SingleStageTerminal();
            term.SerialNumbers = serial;
            JavaScriptSerializer js = new JavaScriptSerializer();
            //serialArray = js.Serialize(term.SerialNumbers);
            return Json(serialArray);
     

AJAX通话

<script>
    
   
     self.url = '@Url.Action("UpdateSerialNumber")'
    $(document).ready(function () {
        // Get value on button click and show alert
        $("#associate").click(function () {
            var str = $("#SerialTb").val();
        
            $.ajax(self.url,{
                    type: "POST",dataType: 'html',data: ({ SerialNumber: str }),async: true,success: function (data) {
                     $("#serialPartial").html(data);
                 }
            })
        });
    });
  

</script>

视图查看电话

<div id="serialPartial">
                                @{
                                    @Html.Partial("_PartialViewSerialNumbers",Model.SerialNumbers)
                                }

                            </div>

实际局部视图

<div class="card w-100">
    <h5 class="card-header"><b>Serial Numbers</b></h5>
    <div class="card-body">
        <div class="container">
            <div class="card card-block user-card">
                <ul id="SerialNumbersTest" class="scroll-list cards">
                    @if (ViewBag.Serials == null)
                    {
                        @foreach (var item in Model.SerialNumbers)
                        {
                            <li>
                                <h6 style="text-align:center">@item</h6>
                            </li>
                        }
                    }
                    else
                    {
                        @foreach (var item in ViewBag.Serials)
                        {
                            <li>
                                <h6 style="text-align:center">@item</h6>
                            </li>
                        }
                    }
                </ul>
            </div>
        </div>
    </div>
</div>

在ajax成功之前

[![在此处输入图片描述] [1]] [1]

Ajax成功之后

[![在此处输入图片描述] [2]] [2]

如您所见,JSON正在填充到DIV中,并且实际上并没有进入我的部分结果中。.任何人都可以帮忙。 [1]:https://i.stack.imgur.com/lxP1L.png [2]:https://i.stack.imgur.com/8NLhI.png

解决方法

您的部分视图没有要显示的模型,并且没有 ViewData 您的传递对象,但未在部分视图上收到。

“部分视图也具有布局”可能是其显示标题,因此添加

Layout = null

在页面顶部。

这是您所做的逐步更改

在UpdateSerialNumber操作中

来自

 public JsonResult UpdateSerialNumber(string serialNumber)

收件人

 public ActionResult UpdateSerialNumber(string serialNumber)

更改发件人的类型

 return Json(serialArray);

收件人

 return View( "_PartialViewSerialNumbers",serialArray)

删除部分渲染线

@Html.Partial("_PartialViewSerialNumbers",Model.SerialNumbers)

在部分视图顶部添加此行

@model string[]
@{ 
   layout = null;
}

替换自

@foreach (var item in Model.SerialNumbers)

收件人

@foreach (var item in Model)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...