Используя Identity с WEB API, я создал несколько пользователей, которые сохранены в
База данных SQL. Я добавил пользовательское свойство (ShippingAddress) к свойствам по умолчанию, которые поставляются вместе с таблицей User, созданной с помощью Identity.
Когда я создаю пользователя, я добавляю имя пользователя, адрес электронной почты и пароль для создания пользователя. Я хочу, чтобы адрес доставки был добавлен позже.
Мне нужно добавить адрес доставки пользователю, который в данный момент вошел в систему. (У меня нет проблем при входе или выходе).
Вот что я пробовал:
Когда я нажимаю эту кнопку, я получаю имя пользователя в окне предупреждения, которое в данный момент зарегистрировано.
Это работает.
<button id="GetUserName">GetUserName</button>
$('#GetUserName').click(function () {
$.ajax({
url: 'GetUserName',
method: 'GET',
headers: {
'Authorization': 'Bearer '
+ sessionStorage.getItem("accessToken")
},
success: function (data) {
alert(data);
},
error: function (jQXHR) {
}
});
});
Это не работает.
Кнопка для добавления адреса доставки:
<button id="addAddress">addAddress</button>
$('#addAddress').click(function () {
$.ajax({
url: 'addAddress',
method: 'PUT',
headers: {
'Authorization': 'Bearer '
+ sessionStorage.getItem("accessToken")
},
//success: function (data) {
// alert(data);
//},
error: function (jQXHR) {
}
});
});
Это дает мне эту ошибку:
jquery-3.3.1.min.js: 2 PUT http://localhost:64687/addAddress 500 (внутренняя ошибка сервера)
Это контроллеры:
using EmployeeService.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace EmployeeService.Controllers
{
public class EmployeesController : ApiController
{
ApplicationDbContext db = new ApplicationDbContext();
[Route("GetUserName")]
public string GetName()
{
string x = User.Identity.Name;
return x;
}
[Route("addAddress")]
[HttpPut]
public void addAddress()
{
string x = User.Identity.Name;
var myUser = db.Users.Find(x);
myUser.ShippingAdress = "asdasd";
db.SaveChanges();
}
}
}
Я не знаю, связана ли моя проблема с запросом ajax, контроллером или обоими. Может кто-нибудь, пожалуйста, помогите.