ASP.NET Core在具有模型的模态上显示ViewComponent

时间:2019-05-05 17:03:37

标签: c# asp.net-core-2.2

嗨,我想调用一个模式以在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中搜索了建议使用视图组件的人之后,

简而言之,我的索引页面显示了我的模型的列表,我希望能够使用模式添加新记录,以便用户停留在同一页面上。如何做到这一点而没有任何问题?

0 个答案:

没有答案