嗨,我想调用一个模式以在Razor Pages支架生成的索引页面上添加新记录,而不是转到“创建页面”。
在我的索引页面上,我有这个按钮来调用模式信息
@page
@model Abastecimento.Pages.Account.Parametros.IndexModel
<button class="btn btn-default" data-toggle="modal" data-target="#exampleModal">
<i class="fas fa-plus text-danger"></i>
</button>
在同一页面上,我有一个调用ViewComponent的模式模板
<div class="modal-body">
@await Component.InvokeAsync("Parametro");
</div>
这是ViewComponent类
public class ParametroViewComponent : ViewComponent
{
public async Task<IViewComponentResult> InvokeAsync()
{
return View();
}
}
并且在ViewComponent的“默认”页面上,我有这个模型
@page
@model Abastecimento.Pages.Shared.Components.Parametro.DefaultModel
如果我删除模型,它会很好,否则会给我这个异常
InvalidOperationException:传递到ViewDataDictionary中的模型项的类型为'Abastecimento.Models.Parametro',但是 该ViewDataDictionary实例需要一个类型为 “ Abastecimento.Pages.Shared.Components.Parametro.DefaultModel”。
我之前做过同样的事情,但是放弃了使用部分视图ajax的原因,因为在提交我的模态后,在这里Render view in modal中搜索了建议使用视图组件的人之后,
简而言之,我的索引页面显示了我的模型的列表,我希望能够使用模式添加新记录,以便用户停留在同一页面上。如何做到这一点而没有任何问题?