[英]ASP Web Pages Razor using AJAX to return array from Database
我正在使用ASP進行課程學習,而我正在使用Razor網頁來完成一個應用程序。 現在,我想從SQL數據庫中檢索信息。
就目前而言,我做了一個像這樣的ajax調用:
$.ajax({
type: "POST",
url: "/timetabler/Includes/ajaxModulesByUserId",
data: { id: UserId },
success: function (data) {
alert(data);
if (data == "ERROR") {
alert("We are unable to store the theme you have selected, therefore the change will not be permanent.");
}
}
});
這非常簡單地調用ajaxModulesByUserId.cshtml
傳遞類似1的用戶ID。現在這個文件非常好地調用。
現在我在CSHTML中嘗試做的是獲取請求的ID,然后使用我的C#函數:
public IEnumerable<dynamic> getAllQuery(string query)
{
return _db.Query(query);
}
執行我的查詢。
現在我用我的Razor代碼調用它:
string input = "";
input = Request["id"];
var arr = new List<string>();
if (!string.IsNullOrEmpty(input))
{
// Add new sheet to database
using (var repo = new initDatabase("SQLServerConnectionString"))
{
foreach (var row in repo.getAllQuery("SELECT * FROM Module WHERE userID = " + input))
{
arr.Add(""+row.moduleCode+","+row.moduleTitle+"");
}
@session.Serialize(arr);
}
}
所以我從數據庫中返回行並將它們放入一個數組,現在問題是,將這些值傳遞給javascript。
我正在使用一個技巧,我從這里讀取Stackoverflow ,通過使用這樣的函數:
public static string Serialize(object o)
{
JavaScriptSerializer js = new JavaScriptSerializer();
return js.Serialize(o);
}
這實際上讓我看到了Javascript中的值,但是當我最終得到這樣的值時,我會陷入困境:
我怎樣才能收到干凈的陣列? 甚至可能甚至返回數據庫中的所有行,因為我不得不在一個數組字段中傳遞代碼和標題的混亂方式,但用逗號分隔。
如果你能幫我把輸出正確的話,真的很感激。
謝謝
Web Pages框架包含一個Json助手 ,它可以獲取您的數據並將其作為JSON返回。
if (!Request["id"].IsEmpty())
{
using (var repo = new initDatabase("SQLServerConnectionString"))
{
var data = repo.getAllQuery("SELECT * FROM Module WHERE userID = @0", Request["id"])
Json.Write(data, Response.Output);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.