Альтернатива Ajax.ActionLink с ядром MVC
В MVC5 есть@Ajax.ActionLink
это полезно для обновления только частичного представления вместо перезагрузки всего представления. Видимо в MVC6 больше не поддерживается.
Я пытался использовать@Html.ActionLink
подобно следующему, но он не обновляет форму, он возвращает только частичное представление:
Посмотреть:
@Html.ActionLink("Update", "GetEnvironment", "Environments", new { id = Model.Id }, new
{
data_ajax = "true",
data_ajax_method = "GET",
data_ajax_mode = "replace",
data_ajax_update = "environment-container",
@class = "btn btn-danger"
})
управления:
public async Task<ActionResult> GetEnvironment(int? id)
{
var environments = await _context.Environments.SingleOrDefaultAsync(m => m.Id == id);
return PartialView("_Environment",environments);
}
Частичный вид:
@model PowerPhysics.Models.Environments
this is a partial view
Затем я попытался использовать ViewComponents. Когда страница загружается, компонент работает правильно, но я не понимаю, как потом обновить только компонент (например, с помощью кнопки):
Посмотреть:
@Component.InvokeAsync("Environments", new { id = Model.Id }).Result
составная часть:
public class EnvironmentsViewComponent : ViewComponent
{
public EnvironmentsViewComponent(PowerPhysics_DataContext context)
{
_context = context;
}
public async Task<IViewComponentResult> InvokeAsync(int? id)
{
var environments = await _context.Environments.SingleOrDefaultAsync(m => m.Id == id);
return View(environments);
}
}
Как я могу обновить только часть представления, используя PartialViews в MVC6?