Мне необходимо сделать веб-шелл. Я почти все сделал, осталось только следующее:
Запоминать историю введенных команд в базе данных на сервере, восстанавливать историю введенных при входе на страницу, листать историю клавишами “вверх” и “вниз” (как, например, в bash или PowerShell).
У меня есть бд, куда уже добавляются команды, которые я ввел в поле, но не получается реализовать просмотр команд с помощью клавиш.
У меня есть html код:
<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Bash command" aria-label="Bash command"
aria-describedby="basic-addon2" <b>@bind="_bashCommand"</b> <b>@onkeydown="OnKeyDown"</b>>
<div class="input-group-append">
<button class="btn btn-outline-secondary" @onclick="Method" type="button">Send</button>
</div>
</div>
Вот так я получаю все команды, которые есть в бд:
private IEnumerable<BashData> _allCommands = new List<BashData>();
private void GetAllBashCommands()
{
_allCommands = repository.GetAllCommands();
}
А вот метод обработки нажатия на кнопки:
private void OnKeyDown(KeyboardEventArgs args)
{
switch (args.Key)
{
case "ArrowUp":
_bashCommand = ;
break;
case "ArrowDown":
_bashCommand = ;
break;
}
}
Т.е я нажимаю на кнопку и _bashCommand присваивается элемент коллекции _allCommands
Как это сделать?