[英]Passing JSON object to Server side and parsing in function
代碼的總體意圖提供的代碼是通過angularJS從登錄頁面獲取用戶名和密碼。 它被傳遞給包含AJAX腳本的函數。 然后,數據將傳遞到服務器端,並應與數據庫中的數據進行比較。 如果一切順利,則應將會話ID和用戶名推送到會話以進行身份驗證和授權。
提供的腳本的目的:我試圖將JSON對象傳遞到服務器端。 我沒有JSON,但是在函數中檢索它並從對象獲取值是我迷失的地方。
我以前嘗試過的內容:我嘗試過使用列表類和字符串。 我將顯示列表以及卡住的位置和字符串。
AJAX:
login: function (username, password) {
var cred = { "uname": username, "pass": password };
var response = $http({
method: "post",
url: "/Login/CheckUser",
data: JSON.stringify({ model: cred }),
contentType: 'application/json; charset=utf-8',
dataType: "JSON",
success: function (msg) {
if (msg) {
console.log("success");
}
},
error: function (msg) {
if (msg) {
console.log("fail");
}
}
使用字符串方法:
[HttpPost]
public string CheckUser(String umodel)
{
Console.Write(umodel);
string modelCheck = umodel;
/*not sure how to parse from here */
清單:
public class userCred
{
public string uname { get; set; }
public string pass { get; set; }
public List<userCred> userCreds = new List<userCred>();
}
[HttpPost]
public string CheckUser(List<userCred> umodel)
{
string uname = "";
string pword = "";
/*Not sure how to access values from JSON here */
/* Begin Assigning values
* Validation check
*/
using (localtestEntities entity = new localtestEntities())
{
var user = entity.users.Where(u => u.uname == uname).FirstOrDefault();
if (user != null)
{
if (pword == user.pw)
{
Session["LoginID"] = user.id;
Session["Username"] = user.fname + ' ' + user.lname;
return user.id.ToString();
}
else
{
return "0";
}
}
else
{
return "0";
}
}
/* Begin Assigning values */
} //End Check User
預期結果將是成功將JSON對象傳遞到服務器端,以比較數據庫中的數據,並根據它們是否匹配返回0或新會話。
為您的JavaScript有效負載對象,創建一個確切的模型,說UserCred
public class UserCred
{
public string Uname { get; set; }
public string Pass { get; set; }
}
現在,當您執行AJAX發布時,MVC會將您的有效負載綁定到模型。 並訪問您的屬性,只需使用model.property
[HttpPost]
public string CheckUser(UserCred model)
{
if(!ModelState.IsValid)
{
return "0";
}
string uname = model.Uname;
string pword = model.Pass;
/* Your Code
*
*/
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.