Возможно, проблема связана с методом, который вы используете для отправки данных в метод действия. И, пожалуйста, проверьте, правильный ли URL-адрес запроса? Лучше опубликовать связанный код, чтобы воспроизвести проблему.
На основе вашего кода и описания я создаю образец на своей стороне и использую форму отправки и метод JQuery для передачи данных в действие метод, оба они хорошо работают на моей стороне.
Используйте метод отправки формы для передачи данных:
Код в контроллере:
[HttpGet]
public IActionResult Add()
{
return View();
}
[HttpPost]
public Server Add(Server server)
{
return server;
}
Код в представлении :
@model Test.Models.Server
@{
ViewData["Title"] = "Add";
}
<div class="row">
<div class="col-md-4">
<form asp-action="Add">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="ServerName" class="control-label"></label>
<input asp-for="ServerName" class="form-control" />
<span asp-validation-for="ServerName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="ServerUrl" class="control-label"></label>
<input asp-for="ServerUrl" class="form-control" />
<span asp-validation-for="ServerUrl" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="ServerIndex" class="control-label"></label>
<input asp-for="ServerIndex" class="form-control" />
<span asp-validation-for="ServerIndex" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Username" class="control-label"></label>
<input asp-for="Username" class="form-control" />
<span asp-validation-for="Username" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Password" class="control-label"></label>
<input asp-for="Password" class="form-control" />
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="SID" class="control-label"></label>
<input asp-for="SID" class="form-control" />
<span asp-validation-for="SID" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" id="btnSubmit" class="btn btn-primary" />
</div>
</form>
</div>
</div>
После нажатия кнопки «Отправить» данные формы будут отправлены методу действия (проверьте свой код, чтобы убедиться, что значение атрибута действия правильное и значение имени элемента правильное).
снимок экрана, как показано ниже (если удалить элемент SID, он также передает данные методу действия Post):
If use JQuery code to submit the form data, code like this:
$ (function () {$ ("# btnSubmit"). click (function () {event.preventDefault (); // предотвращаем событие кнопки отправки по умолчанию. var server = {}; // создаем объект и получаем введенные данные server.ServerName = $ ("input [name = 'ServerName']"). val (); se rver.ServerUrl = $ ("вход [имя = 'ServerUrl']"). val (); server.ServerIndex = $ ("вход [имя = 'ServerIndex']"). val (); server.Username = $ ("вход [имя = 'Имя пользователя']"). val (); server.Password = $ ("ввод [имя = 'Пароль']"). val (); server.SID = $ ("вход [имя = 'SID']"). val (); $. ajax ({type: "POST", url: "/ Home / Add", data: server, success: function (data) {console.log (data)}, failure: function (response) {console. журнал (response.responseText);}, ошибка: функция (ответ) {console.log (response.responseText);}}); }); });
Результат примерно такой (если удалить элемент SID, он все равно работает):
введите описание изображения здесь