Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新ASP.NET核心Web API不起作用的变量的值_Asp.net_Asp.net Core_Asp.net Web Api - Fatal编程技术网

更新ASP.NET核心Web API不起作用的变量的值

更新ASP.NET核心Web API不起作用的变量的值,asp.net,asp.net-core,asp.net-web-api,Asp.net,Asp.net Core,Asp.net Web Api,我有一个列表,当请愿书发出时应该更新,但是它没有做任何事情,没有显示错误或者它只是不更新。你能发现错误或者告诉我解决方法吗 这是我的密码: [ApiController] public class UsersController : ControllerBase { private List<User> users = new List<User>(); [HttpGet] public IEnumerable<User> getAl

我有一个列表,当请愿书发出时应该更新,但是它没有做任何事情,没有显示错误或者它只是不更新。你能发现错误或者告诉我解决方法吗

这是我的密码:

[ApiController]
public class UsersController : ControllerBase
{
    private List<User> users = new List<User>();

    [HttpGet]
    public IEnumerable<User> getAllUsers() 
    {
        users.Add(new User(1,"alan","alavarez","vasquez",new Location("mexico","guanajuato"),"mail","1234"));
        users.Add(new User(1,"alan","alavarez","vasquez",new Location("mexico","guanajuato"),"mail","1234"));
        users.Add(new User(1,"alan","alavarez","vasquez",new Location("mexico","guanajuato"),"mail","1234"));
        return this.users;
    }

    [HttpPost]
    public IEnumerable<User> addNewUser(User user)
    {
        this.users.Add(user);
        return this.users;
    } 
}

用户字段是实例,每个请求都将使用控制器创建和销毁该字段。将用户标记为静态,使其成为全局变量,然后您可以通过post向其添加项目

私有静态列表用户=新列表;
并用用户搜索/替换所有this.users。

这里有另一种更干净的方法来使用存储库模式和依赖项注入

首先创建存储库以存储用户:

public interface IUserRepository
{
    void AddUser(User user);

    void EditUser(User user);

    void RemoveUser(int userId);

    User GetUserById(int userId);

    IEnumerable<User> GetUsers();
}
然后在ConfigureServices方法的Startup.cs类中使用singleton生存期注册IUserRepository和实现:

public void ConfigureServices(IServiceCollection services)
{
    .
    .
    .
    services.AddSingletone<IUserRepository, InMemoryUserRepository>();
}
最后将存储库注入控制器:

[ApiController]
public class UsersController : ControllerBase
{
    private readonly IUserRepository _userRepository;

    public UsersController(IUserRepository userRepository)
    {
        _userRepository = userRepository;
    }

    [HttpGet]
    public IEnumerable<User> getAllUsers()
    {
        _userRepository.AddUser(new User(1, "alan", "alavarez", "vasquez", new Location("mexico", "guanajuato"), "mail", "1234"));
        _userRepository.AddUser(new User(1, "alan", "alavarez", "vasquez", new Location("mexico", "guanajuato"), "mail", "1234"));
        _userRepository.AddUser(new User(1, "alan", "alavarez", "vasquez", new Location("mexico", "guanajuato"), "mail", "1234"));

        return _userRepository.GetUsers();
    }

    [HttpPost]
    public IActionResult AddNewUser(User user)
    {
        _userRepository.AddUser(user);

        return Ok();
    }
}

我如何让它全球化对不起,我是新来的
[ApiController]
public class UsersController : ControllerBase
{
    private readonly IUserRepository _userRepository;

    public UsersController(IUserRepository userRepository)
    {
        _userRepository = userRepository;
    }

    [HttpGet]
    public IEnumerable<User> getAllUsers()
    {
        _userRepository.AddUser(new User(1, "alan", "alavarez", "vasquez", new Location("mexico", "guanajuato"), "mail", "1234"));
        _userRepository.AddUser(new User(1, "alan", "alavarez", "vasquez", new Location("mexico", "guanajuato"), "mail", "1234"));
        _userRepository.AddUser(new User(1, "alan", "alavarez", "vasquez", new Location("mexico", "guanajuato"), "mail", "1234"));

        return _userRepository.GetUsers();
    }

    [HttpPost]
    public IActionResult AddNewUser(User user)
    {
        _userRepository.AddUser(user);

        return Ok();
    }
}