Alternativa Ajax.ActionLink com núcleo de mvc
No MVC5 há@Ajax.ActionLink
isso é útil para atualizar apenas uma visualização parcial em vez de recarregar a visualização inteira. Aparentemente, no MVC6 não é mais suportado.
Eu tentei usar@Html.ActionLink
como o seguinte, mas não atualiza o formulário, ele retorna apenas a vista parcial:
Visão:
@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"
})
ao controle:
public async Task<ActionResult> GetEnvironment(int? id)
{
var environments = await _context.Environments.SingleOrDefaultAsync(m => m.Id == id);
return PartialView("_Environment",environments);
}
Vista parcial:
@model PowerPhysics.Models.Environments
this is a partial view
Então eu tentei usar ViewComponents. Quando a página carrega, o componente funciona corretamente, mas não entendo como atualizar apenas o componente posteriormente (por exemplo, com um botão):
Visão:
@Component.InvokeAsync("Environments", new { id = Model.Id }).Result
componente:
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);
}
}
Como posso atualizar apenas uma parte de uma exibição usando o PartialViews no MVC6?