Ajax.ActionLink Alternative mit MVC Core
n MVC5 gibt es@Ajax.ActionLink
das ist nützlich, um nur eine Teilansicht zu aktualisieren, anstatt die gesamte Ansicht neu zu laden. Anscheinend wird MVC6 nicht mehr unterstützt.
Ich habe versucht mit@Html.ActionLink
wie folgt, aktualisiert das Formular jedoch nicht, sondern gibt nur die Teilansicht zurück:
Aussicht
@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"
})
Steuerung
public async Task<ActionResult> GetEnvironment(int? id)
{
var environments = await _context.Environments.SingleOrDefaultAsync(m => m.Id == id);
return PartialView("_Environment",environments);
}
Teilansicht
@model PowerPhysics.Models.Environments
this is a partial view
Dann habe ich versucht, ViewComponents zu verwenden. Wenn die Seite geladen wird, funktioniert die Komponente ordnungsgemäß, aber ich verstehe nicht, wie ich die Komponente anschließend aktualisieren kann (z. B. mit einer Schaltfläche):
Aussicht
@Component.InvokeAsync("Environments", new { id = Model.Id }).Result
Komponente
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);
}
}
Wie kann ich nur einen Teil einer Ansicht mithilfe von PartialViews in MVC6 aktualisieren?