2016-02-27 1 views
-2

Bonjour, j'ai une vue appelée visiteurs dans mon projet. Dans cette vue, il contient deux listes déroulantes CustomerName et ContactPerson Si je sélectionne le nom du client, le nom ContactPerson associé à CustomerName sera automatiquement chargé dans le menu déroulant de la personne de contact.Comme: DropDown en cascade. Ce processus fonctionne correctement en mode normal, c'est-à-dire lorsque je lance mon application, cette liste déroulante en cascade fonctionne correctement. Mais quand je publie mon projet dans LocalHost et que j'exécute l'application, le menu déroulant ne charge pas les valeurs de DB. Ces cascades ne fonctionnent pas. donc j'inspecte le problème dans le navigateur à ce moment-là j'ai eu ces problèmes. Le problème est ci-dessous. s'il vous plaît quelqu'un me dire quel est le problème est-ce? Donnez-moi une solution pour ce problèmeErreur de fonction anonyme et quelle est la fonction anonyme?

enter image description here

Mon 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; } 

Mon contrôleur

 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); 
    } 

Mon Voir

<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> 

Mon 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

L'erreur 404 pas trouvé .. Rien à voir avec la fonction anonyme. Je pense que l'URL que vous essayez d'atteindre n'est pas correcte. oui je suis d'accord que cela fonctionne dans votre dev mais pas après que vous avez publié. Cliquez sur le lien après 'GET' dans l'erreur ci-dessus et vous serez en mesure de voir l'erreur réelle –

+0

Vous devez poster votre code, pas des images de celui-ci! –

+0

ok je posterai mon code wait – Sruthi

Répondre

-2

Votre fonction anonyme devrait ressembler à ceci:

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

La façon dont vous avez $ n'est pas portée dans la fonction anonyme. Il doit être passé en tant que paramètre de fonction.

+1

Pouvez-vous s'il vous plaît expliquer comment ce code aléatoire recommandation de style se rapporte à la question? –

+0

La question portait sur l'erreur encerclée dans l'image. Le code affiché (dans l'image) qui est lié à la ligne '$ (function() {'.J'essayais de montrer la syntaxe correcte qui devrait être '(function ($) {...' qui corrige l'erreur – JimG

+1

@JimG '$ (function() {' est correct, c'est une petite main pour documenter le style prêt Et le code que vous avez posté est une syntaxe de fermeture qui n'est pas liée à cette question –