gpt4 book ai didi

javascript - jQuery Ajax 帖子未运行 Controller 操作

转载 作者:行者123 更新时间:2023-11-29 15:36:14 25 4
gpt4 key购买 nike

我有这个 jQuery 脚本:

var registrationModel = {
SurName: document.getElementById("SurName").value,
LastName: document.getElementById("LastName").value,
Email: document.getElementById("Email").value,
PhoneNumber: document.getElementById("PhoneNumber").value,
Password: document.getElementById("Password").value,
Name: document.getElementById("Name").value,
Street: document.getElementById("Street").value,
ZipCode: document.getElementById("ZipCode").value,
City: document.getElementById("City").value,
Country: document.getElementById("Country").value
};

$.ajax({
url: '@Url.Action("SaveRegisterDetailsToDb")',
type: "POST",
data: JSON.stringify(registrationModel),
contentType: "application/json"
});

我有这个 Controller 操作(用户和公司在 Controller 上全局设置):

[HttpPost]
public async Task<ActionResult> SaveRegisterDetailsToDb(RegisterViewModel model)
{
//Skapa ApplicationUser i db

user.UserName = model.Email;
user.Email = model.Email;
user.PhoneNumber = model.PhoneNumber;
user.SurName = model.SurName;
user.LastName = model.LastName;

company.CompanyIdentity = model.CompanyIdentity;
company.Name = model.Name;
company.Street = model.Street;
company.ZipCode = Convert.ToInt32(model.ZipCode);
company.City = model.City;
company.Country = model.Country;

user.WorkPlaceId = company.CompanyIdentity;

var result = await UserManager.CreateAsync(user, model.Password);

if (result.Succeeded)
{
await UserManager.AddToRoleAsync(user.Id, "Customer");

//Spara Company mot db.
var db = new IdentityDb();

db.Companies.Add(company);
db.SaveChanges();

}
else
{
AddErrors(result);
}
return View("Login");
}

这是我的模型:

  public class RegisterViewModel
{
//Constructor
public RegisterViewModel()
{
_companyIdentity = Guid.NewGuid().ToString();
}

[Display(Name = "Användarnamn")]
public string UserName { get; set; }

[Required]
[Column("SurName")]
[Display(Name = "Förnamn")]
public string SurName { get; set; }

[Required]
[Column("LastName")]
[Display(Name = "Efternamn")]
public string LastName { get; set; }

[Required]
[DataType(DataType.EmailAddress)]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }

[Required]
[DataType(DataType.PhoneNumber)]
[Phone]
[Display(Name = "Telefonnummer")]
public string PhoneNumber { get; set; }

[Required]
[StringLength(100, ErrorMessage = "{0} måste vara minst {2} tecken långt. Försök igen!", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Lösenord")]
public string Password { get; set; }

[DataType(DataType.Password)]
[Display(Name = "Upprepa Lösenord")]
[System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "Lösenorden stämmer inte. Försök igen!")]
public string ConfirmPassword { get; set; }

[Required]
[Display(Name = "Adress")]
public string Street { get; set; }

[Required]
[Display(Name = "Postnummer")]
public int ZipCode { get; set; }

[Required]
[Display(Name = "Stad")]
public string City { get; set; }

[Required]
[Display(Name = "Land")]
public string Country { get; set; }

[Required]
[Display(Name = "Namn på företag")]
public string Name { get; set; }

[HiddenInput(DisplayValue = false)]
private string _companyIdentity { get; set; }

[HiddenInput(DisplayValue = false)]
public string CompanyIdentity { get { return _companyIdentity; } }
}

根据 Fiddler,这是从 Ajax 调用发送的帖子:

POST http://localhost:54213/Account/SaveRegisterDetailsToDb HTTP/1.1
Host: localhost:54213
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101

Firefox/35.0
Accept: */*
Accept-Language: sv-SE,sv;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://localhost:54213/Account/Register
Content-Length: 235
Cookie: __RequestVerificationToken=i8CxmZxjAUoxA-u6T9Bw94g-Ysz1Z7WkjAq6HyYw3i69WJR4HUvFr1EGs5WtMDgQASl65ZwOOjkrZIfsFlIP1MqKmKuZzH6Tu2EPo56VFpk1
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

{"model":{"SurName":"Göran","LastName":"Lassgård","Email":"gustavkaldner@yahoo.se","PhoneNumber":"543543","Password":"hej123","Name":"Gurras Kebab AB","Street":"Tobaksvägen 4","ZipCode":"25497","City":"Istanbul","Country":"Isreal"}}

问题是 jQuery Ajax 帖子没有像预期的那样运行“SaveRegisterDetailsToDb”。

我在 Action 的开头设置了一个断点,但它根本没有命中它。

我的简单问题是为什么这个 Action 永远不会执行?

我是否遗漏了一些明显的东西?

最佳答案

在您的 Controller 上使用 [Authorize] 时,您应该将 [AllowAnonymous] 属性添加到您的操作中以允许访问它。

关于javascript - jQuery Ajax 帖子未运行 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28409784/

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