gpt4 book ai didi

javascript - 无需表单即可在 ASP.NET 应用程序中注册新用户

转载 作者:行者123 更新时间:2023-12-03 05:17:32 24 4
gpt4 key购买 nike

我想在 ASP.NET 应用程序中注册新用户。我不想使用表单,而是想使用 Ajax。

这是我的 AccountController 中的 post 函数:

[System.Web.Mvc.HttpPost]
public async Task<bool> Register(UserItem post) {
try {
var user = new ApplicationUser { UserName = post.UserName, Email = post.UserName };
var result = await UserManager.CreateAsync(user, post.Password);
if (result.Succeeded) {
post.Id = user.Id;
await _userRepository.Save(post);
return true;
}
AddErrors(result);
}
catch (Exception e) {
Console.WriteLine(e);
}
// If we got this far, something failed, redisplay form
return false;
}

这是我对 Controller 的 Ajax 调用:

var userJson = ko.toJSON(self.selectedUser);
console.log(userJson);
$.ajax({
type: "POST",
url: "http://localhost:7061/Account/Register",
headers: "application/json; charset=UTF-8",
dataType: "json",
contentType: "application/json",
data: userJson,
error: function (xmlHttpRequest, textStatus, errorThrown, response) {
},
success: function (response) {
console.log(response);
self.loadUsers();
}
});

但是我在 Controller 中的注册函数永远不会被调用。

谢谢。

最佳答案

关于 AccountController每个操作都需要返回 ActionResult对象,或者在异步操作的情况下, Task<ActionResult> 。否则,它不会被视为操作,并且不会将任何请求路由到它。

将方法的签名更改为:

public async Task<ActionResult> Register(UserItem post) {

而不是返回 truefalse ,返回Json(true)Json(false)

关于javascript - 无需表单即可在 ASP.NET 应用程序中注册新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com