簡體   English   中英

MVC4:如何傳遞嵌套的Ajax請求?

[英]MVC4 : How to pass nested Ajax request?

我在Web應用程序中形成表單,即我根據用戶選擇的ajax篩選數據並使用jason獲取數據的方法都工作良好,但是當我想獲取從表BankPlans值中獲取的嵌套數據以及我獲取的每個bankid時出現問題來自其他表的所有必需文檔,我嘗試在jason中以一種方法獲取它們以進行選擇

new { Percent = r.percent, Reqdocs = docs });

並在每個reqDosc的ajax循環中將它們放入列表中

  • 當控制器中的execute方法說情況1 =操作和情況2 =操作時,我得到了錯誤,然后我嘗試另一種解決方案,以兩種方法傳遞它們,一個獲得百分比和id,然后將它們傳遞給第一個ajax,對於每個id獲得所需的值docs第一種方法執行得很好,但是第二種方法獲得了最后一個id的文檔,當我在下一個方法中設定斷點時將它們放入所有計划中,它實際上將參數傳遞給這三個值,只有一個要執行,我認為它需要異步他們之間,但我不能做到這一點,或者如果有任何其他解決方案來解決問題。

    阿賈克斯:

      var addressData = JSON.stringify(jsonData); $.ajax({ url: '/Getyourcar/GetPlans', type: "POST", dataType: "json", contentType: "application/json; charset=utf-8", data: addressData, success: function (result) { $("#carousel").empty(); for (i = 0; i < result.length; i++) { $("#carousel").append("<div class='carousel-feature'><div class='content'><h3>الفائدة السنوية</h3><div class='rate'> " + result[i].percent + " </div><div class='feature_cnt'> <ul></ul> </div> <a href='javascript:void(0)' class='check' title=" + result[i].percent + ">اختر</a></div><img class='carousel-image' alt='Image Caption' src='/images/1px.png'></div>"); $('input[name="planid"]').val(result[i].planid); getDocs(); } }, error: function (result) { } }); } var getDocs = function () { var jsonData = { "Planid": $("#planid").val(), }; var addressData = JSON.stringify(jsonData); $.ajax({ url: '/Getyourcar/Getdocs', type: "POST", dataType: "json", contentType: "application/json; charset=utf-8", data: addressData, success: function (result) { $("#carousel .feature_cnt ul").empty(); for (i = 0; i < result.length; i++) { $("#carousel .feature_cnt ul").append("<li>" + result[i].plan + " </li>"); } }, error: function (result) { alert("failed"); } }); 

    控制器:

      public ActionResult GetPlans(string BankName = "", string Period = "", string customergrade = "") { int bankid = db.Banks.Where(b => b.Name.Contains(BankName) || BankName == "").FirstOrDefault().Id; int yearid = db.Yearss.Where(b => b.Name.Contains(Period) || Period == "").FirstOrDefault().Id; int cusgradeid = db.CustomerGrades.Where(c => c.Name.Contains(customergrade) || customergrade == "").FirstOrDefault().Id; var Bankplanid = db.BankPlanss.Where(b => (b.BankId == bankid) && (b.CustomerGradeId == cusgradeid)) .Select(r => new { cusgrade = cusgradeid, bankid = r.BankId, percent = r.Percent, planid = r.Id }); return Json(Bankplanid, JsonRequestBehavior.AllowGet); } public ActionResult Getdocs(int Planid = 0) { var plans = db.BankPlansReqDocs.Where(b => b.BankPlansId == Planid) .Select(r => new { plan = r.RequiredDocs.Name }); return Json(plans, JsonRequestBehavior.AllowGet); } 

    在VS中使用調試時,在第一次按兩次調用帶有下一個值的同一行並返回下一個值的Jason並返回上一個值的Jason的情況下,在參數中的Planid首次獲得兩次的Getdocs方法的情況下。

    請幫忙,謝謝。

  • 通過將所有文檔作為以(,)和list中的所有ID分隔的字符串傳遞來解決該問題。

    • 在Java腳本split(“,”)中,並將其插入指定的ul id中

    暫無
    暫無

    聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

     
    粵ICP備18138465號  © 2020-2024 STACKOOM.COM