#jquery #asp.net #.net #api
#jquery #asp.net #.net #API
Вопрос:
Я не могу даже предупредить сообщение с помощью jQuery, что не так с моим кодом? Когда я использовал post man, я смог добавить в базу данных.
Я хочу использовать метод post, чтобы иметь возможность отправлять данные в базу данных
Вид:
@model API.Models.Customers
@{
ViewBag.Title = "New";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>New Form</h2>
<div id="container">
<form>
<div class="form-group" id="Name">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
</div>
<br />
<p id="demo"></p>
<button type="submit" class="btn btn-primary js-Add">Save</button>
</form>
</div>
@section scripts {
<script type="text/javascript">
$(document).ready(function () {
$("#container .js-Add").on("click", function () {
var button = $(this);
if (confirm("Are you sure you want to ADD this customer?")) {
var input = $("Name").val();
$.ajax({
url: "/api/Customer/CreateCustomer",
type: "POST",
data: input,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert('HELLO' response.Name);
}
});
}
});
});
</script>
}
КОНТРОЛЛЕР API:
[HttpPost]
public IHttpActionResult CreateCustomer(Customers CustomerDTO)
{
if (!ModelState.IsValid)
{
return BadRequest();
}
_context.Customerss.Add(CustomerDTO);
_context.SaveChanges();
return Created(new Uri(Request.RequestUri "/" CustomerDTO.Id), CustomerDTO);
}
КОНТРОЛЛЕР MVC
public ActionResult New(Customers customers)
{
return View(customers);
}
В чем проблема?
Комментарии:
1. вам необходимо отменить отправку формы.
2. консоль. ответ журнала
Ответ №1:
Пожалуйста, измените значение свойства div id на что-то другое, а не на Name. например, измените его на <div class="form-group" id="NameGroup">
then вы можете изменить свой JS-код на что-то вроде этого:
$(function () {
$("#container .js-Add").click(function (e) {
e.preventDefault();
if (confirm("Are you sure you want to ADD this customer?")) {
let personName = $("#Name").val();
$.ajax({
url: "/home/PostPerson",
type: "POST",
data: { Name: personName },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
alert('HELLO' response.Name);
}
});
}
});
});
Не забудьте изменить размещенный объект на основе вашего объекта.
Ответ №2:
Ваш заголовок / тип содержимого должен соответствовать данным, которые вы публикуете. Поэтому, если вы преобразуете свои данные в JSON, это должно сработать. вы можете использовать JSON.stringify(your data)