【问题标题】:Tried to load table dynamically using AJAX but rows not displayed尝试使用 AJAX 动态加载表,但未显示行
【发布时间】:2017-03-22 06:36:35
【问题描述】:

在一个表单中,我有一个下拉列表和一个文本框,它们将获取用户的输入。然后当用户提交表单时,我不希望整个页面刷新。我只想要它下面的表格来刷新和加载数据库中的数据。我尝试了下面的代码,但只弹出警报。桌子还是空的。

$('#frmPrescDrugList').submit(function (e) {

        e.preventDefault(); // Prevent Default Submission

        $.ajax({
            url: '/consultation/PrescDrugList',
            type: 'POST',
            data: $(this).serialize(), // it will serialize the form data
            dataType: 'html',
            success: function (data) {
                var row_data = "";
                row_data += "@{ var rowNum = 0; } @foreach (var item in Model.LoadDrugList) {
                                            rowNum += 1;
                                            <tr Class="odd gradeX">
                                                <td>@rowNum</td>
                                                <td>@item.dsubsystem</td>
                                                <td>@item.tradename </td>
                                                <td style="text-align: center; vertical-align: middle;"><form Class="form-horizontal" role="form" action="@Url.Action("Prescription", "consultation", new {dgid = item.dgid})" method="post"><Button type="submit" Class="btn btn-default" name="btnDrugListSelect">Select</Button></form></td>
                                            </tr>
                                    }";
                $("#LoadDrugListTable").append(row_data);


                alert('Drug list has been loaded.');

            },
            error: function () {
                alert('Ajax Submit Failed ...');
            }
        }); // end ajax

    }); // end form-submit

LoadDrugListTable 是表的 ID。 ajax 已经成功了,为什么不加载数据?任何人都可以帮助指出我的错误或建议我更好的示例参考吗?

我尝试遵循this 示例,但我被困在@Url.Action()。其带下划线的红色。当我尝试用 "" 和 + 将它们分开时,它仍然带有红色下划线

字符文字中的字符过多。

更新

这是我提到的没有正确传递 id 的表单。我将它传递给 get 方法。顺便说一句,这与我上面提到的页面完全不同。当我尝试在另一个页面中做同样的事情时,它传递了一个空的付费值。支付是id。也许是因为这次我要转到另一个页面。

"<td style='text-align: center; vertical-align: middle;'><form Class='form-horizontal' role='form' action='@Url.Action("PatientMedicalInfo", "consultation", new { paid = Html.Raw(" + data[i].paid + ") }) method='get'><Button Class='btn btn-default' name='btnSelectPatient' id='btnSelectPatient'>Select</Button></form></td>"

这是控制器:

    [HttpGet()]
    public ActionResult PatientMedicalInfo(string paid)
    {

        PatientLookupVM Patient = new PatientLookupVM();

        dynamic CurrentPatientDetailsByPtId = Patient.GetCurrentPatientDetailsByPtId(paid);
        Patient.LoadCurrentPatientDetails = CurrentPatientDetailsByPtId;

        return View(Patient);

    }

【问题讨论】:

  • Id 还是paid?我建议创建新问题,它会变得令人困惑。
  • @MantasČekanauskas 支付的是 id。对不起,我让它混淆了。我会改的
  • @MantasČekanauskas 我意识到了一些事情。当我尝试单击按钮以使用页面中的常用表格将 ID 传递到下一页时,它工作正常。在我注释掉页面中的普通表格后,id 没有通过按钮单击传递,而是我使用 ajax 加载表格。
  • @MantasČekanauskas 你能看看我的新问题here吗?

标签: javascript c# ajax asp.net-mvc-viewmodel


【解决方案1】:

尝试用单 ' 引号替换双 " 引号。 为了保持一致性,您可以在任何地方替换它们。

<td ... action='@Url.Action("Prescription", "consultation", new {dgid = item.dgid})' ... </td>

【讨论】:

  • 您的意思是仅在@url.action 内部将" 引号替换为' 引号?还是整个页面?
  • 我已经尝试将 url.action 的内部部分的 " 更改为 ',但仍然相同
  • 就这一行。可能dgid有问题?
  • foreach 循环中过去的大括号中有多余的引号和分号
  • 最后的想法,换成Html.Raw - {dgid = Html.Raw(item.dgid)}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2017-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
相关资源
最近更新 更多