我有一個專案,我必須將前端從 CSHTML 重寫為 Angular。我在 Angular 中設定了注冊頁面,并使用 PUT 請求將資料發送到后端。但我似乎無法從中提取不同的變數。我的主要問題是我不知道如何訪問發送 PUT 請求時傳入的檔案。請求:
register() {
var body = {
ID: '',
firstName: this.registerModel.value.firstName,
lastName: this.registerModel.value.lastName,
gender: this.registerModel.value.gender,
email: this.registerModel.value.email,
password: this.registerModel.value.password
};
return this.http.post(this.apiUrl '/Register/Register', body)
}
當用戶提交表單時,我呼叫該函式:
onSubmit(){
console.log("clicked");
this.service.register().subscribe()
}
它呼叫的函式會查看存盤現有用戶的 Json,并應比較它們(回傳 Json 值僅用于測驗):
[HttpPost]
public IActionResult Register(User user)
{
string path = @"./Data/Users.json";
//Instantiate User
User newUser = new User();
Guid ID = Guid.NewGuid();
newUser.ID = ID;
newUser.firstName = user.firstName;
newUser.lastName = user.lastName;
newUser.email = user.email;
newUser.gender = user.gender;
newUser.password = user.password;
if (user.firstName == null || user.lastName == null
|| user.email == null || user.gender == null || user.password == null)
{
ViewData["message"] = "Please Fill all fields!";
var data = "null in variables";
return Json(new { data = data });
}
string fileContent;
if (System.IO.File.Exists(path))
{
fileContent = System.IO.File.ReadAllText(path);
users = JsonConvert.DeserializeObject<List<User>>(fileContent);
foreach (User current in users)
{
if (current.email == newUser.email)
{
ViewData["message"] = "Already exists!";
var data3 = "existing user";
return Json(new { data3 = data3 });
}
}
users.Add(newUser);
string json = JsonConvert.SerializeObject(users);
System.IO.File.WriteAllText(path, json);
}
var data2 = "succes";
return Json(new { data2 = data2 });
}
uj5u.com熱心網友回復:
我們能夠解決問題。我想對控制器和 Startup.cs 檔案進行一些修改。當我可以訪問代碼所在的 PC 時,我將發布代碼片段。但很快:我必須添加 APIController 和路由到控制器,該函式需要一個 fromBody 標記,并且我必須更改 Startup.Cs 檔案中的一行。現在它運行完美。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/460127.html
上一篇:如何在顫動中從串列中洗掉物件
下一篇:我收到UnhandledException:FormatException:Unexpectedendofinput(atcharacter1)并且不知道為什么?
