匿名函数错误和什么是匿名函数?

时间:2016-02-27 04:31:16

标签: c# jquery ajax twitter-bootstrap asp.net-mvc-4

您好我的项目中有一个名为访客视图的视图。在该视图中,它包含两个下拉列表 CustomerName ContactPerson ,如果我选择CustomerName,CustomerName相关的ContactPerson名称将自动加载到联系人下拉列表中。如Cascading DropDown。这个过程在正常模式下工作正常,当我运行我的应用程序时,这个级联下拉列表工作正常。但是当我在LocalHost中发布我的项目并运行应用程序时,下拉列表都没有从db加载值。这些级联不起作用。所以我在浏览器中检查问题,那时我遇到了这个问题。问题如下。请问任何人告诉我这是什么问题?给我这个问题的解决方案

enter image description here

我的ViewModel

   public Nullable<System.Guid> CustomerID { get; set; }
   public string CustomerName { get; set; }
   public Nullable<System.Guid> CustomerContactID { get; set; }
   public string ContactPerson { get; set; }

我的控制器

     public ActionResult Create()
    {
      return View();
    }
     public JsonResult GetCustomers()
    {
        return Json(db.Customers.ToList(), JsonRequestBehavior.AllowGet);
    }

    public JsonResult GetContactPersobByCustomerId(string customerId)
    {
        Guid Id = Guid.Parse(customerId);
        var customercontacts = from a in db.CustomerContacts where   a.CustomerID == Id select a;

        return Json(customercontacts);
    }

我的观点

    <div class="col-sm-4">
      <div class="form-group">
        @Html.Label("Customer Name", new { @class = "control-label" })
        @Html.DropDownListFor(model => model.CustomerID, new SelectList(string.Empty, "Value", "Text"), "Please select a Customer", new { @class = "form-control required", type = "text" })
                        </div>
                    </div>

          <div class="col-sm-4">
          <div class="form-group">
         @Html.Label("Contact Person", new { @class = "control-label" })
         @Html.DropDownListFor(model => model.CustomerContactID, new SelectList(string.Empty, "Value", "Text"), "Please select a ContactPerson", new { @class = "form-control", type = "text", id = "CustomerContactID" })
         </div>
         </div>

我的Jquery

<script>
 $(function () {
    $.ajax({
        type: "GET",
        url: "/VisitorsForm/GetCustomers",
        datatype: "Json",
        success: function (data) {
            $.each(data, function (index, value) {
                $('#CustomerID').append('<option value="' + value.CustomerID + '">' + value.DisplayName + '</option>');
            });
        }
    });

    $('#CustomerID').change(function () {

        $('#CustomerContactID').empty();

        $.ajax({
            type: "POST",
            url: "/VisitorsForm/GetContactPersobByCustomerId",
            datatype: "Json",
            data: { CustomerID: $('#CustomerID').val() },
            success: function (data) {
                $.each(data, function (index, value) {
                    $('#CustomerContactID').append('<option value="' + value.CustomerContactID + '">' + value.ContactReference + '</option>');
                });
            }
        });
    });
});

1 个答案:

答案 0 :(得分:-2)

您的匿名函数应如下所示:

(function($){
    $.ajax({
        //etc
    })
})(jQuery)

你拥有它的方式$不在匿名函数范围内。它必须作为函数参数传递。