【问题标题】:Populate text box with Json data使用 Json 数据填充文本框
【发布时间】:2019-01-29 23:56:16
【问题描述】:

请看我下面的代码,

控制器 -

public ActionResult AmountOwed()
{
    int vehicleID = Convert.ToInt32(Request.Cookies["VehicleID"].Value);
    var amountOwed = _PUSPERSContext.TblEOYPayments.Where(x => x.VehicleID == vehicleID).OrderByDescending(x => x.PaymentID).Take(1).Select(x => x.AmountOwed).ToList().FirstOrDefault();  
    return Json(amountOwed, JsonRequestBehavior.AllowGet);
}

这给了我想要的值,但我现在想在局部视图的文本框中显示它 (_EOYPaymentsLayout.cshtml) -

<div class='form-group'>
    @Html.LabelFor(m => m.TblEOYPayment.AmountOwed, new { title = "Amount Owed" })
    @Html.TextBoxFor(m => m.TblEOYPayment.AmountOwed, new { title = "Amount Owed", @class = "form-control inputSizeMedium"})
</div>

我已经在我的 ajax 代码中尝试了各种方法,但我永远无法将值放入视图中(此代码位于名为 Payments 的主视图中)-

$(document).ready(function () {
    $('#addEOYPayment').click(function () {
        $.ajax({
            type: "GET",
            url: "AmountOwed",
            datatype: "Json",
            success: function (data) {
                $('#TblEOYPayment_AmountOwed').html(data.amountOwed);
            }
        });
    });
});

不胜感激。谢谢

【问题讨论】:

  • 什么是 $('#TblEOYPayment_AmountOwed')?是您要输入金额的文本框吗?
  • 是的,没错
  • 然后$('#TblEOYPayment_AmountOwed').val(data.amountOwed) 如果data.amountOwed 是应该在文本框中填写的正确值。

标签: json ajax asp.net-mvc-5


【解决方案1】:

您可以返回部分视图,而不是返回 json 对象

C#

    public ActionResult AmountOwed()
        {
            int vehicleID = 
            Convert.ToInt32(Request.Cookies["VehicleID"].Value);

            var amountOwed = _PUSPERSContext.TblEOYPayments.Where(x => x.VehicleID == vehicleID).OrderByDescending(x => x.PaymentID).Take(1).Select(x => x.AmountOwed).ToList().FirstOrDefault();

            return PartialView("NameOfView.cshtml", amountOwed );
        }

js

 $(document).ready(function () {
      $('#addEOYPayment').click(function () {
            $.ajax({
                type: "GET",

                url: "AmountOwed",

                datatype: "Json",


                success: function (data) {
                    $('#TblEOYPayment_AmountOwed').html(data.responseText);
                }

            });
        });
    });

您的视图可能会收到可变金额的类型。

【讨论】:

    【解决方案2】:

    您必须仔细检查您的网址。请务必包含控制器名称。例如:URL: "\Home\AmountOwed\" + ID,

    【讨论】:

      【解决方案3】:

      感谢您的回复。

      终于搞定了,就是这样:

      $(document).ready(function () {
      
                  $('#addEOYPayment').click(function () {
                      $.ajax({
                          type: "GET",
      
                          url: "/Home/AmountOwed",
      
                          datatype: "Json",
      
      
                          success: function (data) {
                              $('#TblEOYPayment_AmountOwed').val(data);                     
      
                          }
      
                      });
      
      
                  });
              });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-16
        • 1970-01-01
        • 2021-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        相关资源
        最近更新 更多