2016-04-12 19 views
-4

如何顯示由json linq list返回查看? 我嘗試像下面,但不能獲取列表值。如何顯示由json linq list返回的視圖?

$("#Admission_No").live("change", function() { 
      var adminssionNo = $(this).val(); 
      $.getJSON("/../Student_Fee_Allocation/GetStuDetails", { adminssionNo: adminssionNo }, function (list) { 

       if (list.length) { 
        alert(list.Registration_Id); 
       }   alert(result.Re_Admission_Id); 
      }); 

      //   $.ajax({ 
      //    type: "GET", 
      //    url: "/../Student_Fee_Allocation/GetStuDetails/", 
      //    data: { adminssionNo: adminssionNo }, 
      //    contentType: "application/json;charset=utf-8", 
      //    dataType: "json", 
      //    success: function (result) { 
      //     debugger; 
      //     alert(result) 
      //    }, 
      //    error: function (response) { 
      //     debugger; 
      //     alert('eror'); 
      //    } 
      //   }); 

     }); 

in c#在變量中獲取數據並返回爲json。但從觀點來看沒有任何迴應,意味着沒有獲得任何價值,甚至警覺不工作。

public JsonResult GetStuDetails(string adminssionNo)//long? compId, long? compLocId, 
{ 
    var list = 
     (from a in db.Student_Re_Admission 
     join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id 
     where a.Admission_No == adminssionNo && b.Delete_Flag == false 
     orderby a.Re_Admission_Id descending 
     select new CUSTOM_STUDENT_FEEALLOCATION_DETAIL 
     { 
      Registration_Id=a.Registration_Id 
     }).First(); 
    return Json(list, JsonRequestBehavior.AllowGet); 
} 

回答

0

我注意到你的代碼的幾個問題,我會詳細說明如下:

確保價值觀的正確量返回

在您查詢,您正在使用First()通話,這將只是從您的查詢返回可用的第一個項目結束它。如果你試圖返回項目的集合,你應該考慮使用ToList()相反,應返回所有值的查詢:

var list = 
    (from a in db.Student_Re_Admission 
    join b in db.Student_Registration on a.Registration_Id equals b.Registration_Id 
    where a.Admission_No == adminssionNo && b.Delete_Flag == false 
    orderby a.Re_Admission_Id descending 
    select new CUSTOM_STUDENT_FEEALLOCATION_DETAIL 
    { 
     Registration_Id=a.Registration_Id 
    }).ToList(); 

live()

jQuery的live()功能的使用was deprecated in jQuery 1.7雖然這可能不是問題,但如果您使用的jQuery版本低於1.9,則應考慮使用替代版本on()

檢查路徑

您目前使用相對路徑,這可能會工作得很好,但你可能要考慮可能瞄準的絕對路徑,而不是。如果你的Javascript代碼已經(而不是在外部文件)視圖中,您可以使用Url.Action()方法來解決此問題:

$.getJSON('@Url("GetStuDetails","Student_Fee_Allocation")', ...); 

,或者如果它是一個外部文件,可以將其存儲在一個data-*屬性元件上,並且引用它:

<div id='Admission_No' data-url='@Url("GetStuDetails","Student_Fee_Allocation")'> 
    <!-- Your Content Here --> 
</div> 

沿着:

$.getJSON($(this).data('url'), ...); 

考慮使用debugger檢查你的輸出

如果您仍然有問題,你可能要考慮使用JavaScript debugger聲明鑽更深正從您的AJAX調用返回了什麼:

$.getJSON("/../Student_Fee_Allocation/GetStuDetails", { adminssionNo: adminssionNo }, function (list) { 
    // Place a debugger here and run this with your Developer Tools (F12) 
    // open to see more information on what list looks like 
    debugger; 
    if (list.length) { 
       alert(list.Registration_Id); 
    }   
}); 
+0

通過VAR它不是通過類類型變量來到了現在。 –

+0

你能詳細解釋一下嗎?恐怕我不明白你指的是什麼?你是說你的函數沒有返回任何值,或者你的參數沒有被填充到Controller Action中? –

+0

沒有值從我的函數 –

0

通常,處理單個結果時會讓某個div充當佔位符,然後將該div的html屬性設置爲來自後端的結果。

要注意的是在LINQ查詢調用。首先()將拋出和錯誤,如果沒有數據抹茶的查詢參數,更好地利用FirstOrDefault()

相關問題