Я могу передать объект для редактирования из моего представления в мой метод действия Upsert, используя Tag-Helpers, как это ...
Это мой Index.cs html :( Взгляните на Редактировать ссылку ниже)
@foreach (var item in Model)
{
<tr>
<td>@item.CategoryID </td>
<td>@item.CategoryName </td>
<td>
<a asp-area="Admin" asp-controller="Category" asp-action="Upsert" asp-route-CategoryID="@item.CategoryID" asp-route-CategoryName="@item.CategoryName">Edit</a>
</td>
</tr>
}
Это мой метод действия:
[HttpPost]
public IActionResult Upsert(Category category)
{
ViewBag.Name = category.CategoryName;
ViewBag.ID = category.CategoryID;
return View();
}
И данные будут успешно переданы методу действия Upsert.
Вопрос: Как сделать передать данные в jquery / ajax? Для этого мне нужна такая ссылка:
<a href="/Admin/Category/Upsert/@item.CategoryID" >Edit</a>
, и я действительно не могу использовать Tag-Helpers в jquery. Я могу передать CategoryID только в jquery / ajax и не знаю как передать другое поле CategoryName и, наконец, передать объект Category моему методу действия Upsert? Ниже я получаю данные, вызывающие метод GetAll (набираю: «GET»), визуализирую данные в таблице и создаю кнопку «Изменить» для каждой строки. Я хочу передать полный объект методу Upsert (набираю: «POST» )? Я могу сделать переменную в каждом l oop, но из l oop она не определена!
$.ajax({
url: "/Admin/Category/GetAll",
type: "GET",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (result) {
var html = '';
$.each(result, function (key, item) {
html += `
<tr>
<td>${item.categoryID}</td>
<td>${item.categoryName}</td>
<td> <div class="text-center">
<a href="/Admin/Category/Upsert/${item.categoryID}" class="btn btn-success">Edit</a>
<a class="btn btn-danger">Delete</a>
</div>
</td>
</tr>
` ;
console.log(item);
});
console.log(result);
$('#tblData tbody').html(html);
},
});