无法找到IViewDataContainer对象.ViewUserControl必须在ViewPage, ViewMas
本文关键字:ViewPage ViewMas ViewUserControl IViewDataContainer 对象 | 更新日期: 2023-09-27 17:54:01
我试图在MVC中实现SSRS查看器。经过大量的痛苦和折磨,我已经通过一个自定义控件基本工作。
报告呈现得很好,但我试图像这样将模型传递给控件:
@Html.Partial("VendorReport", Model)
调用ascx控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VendorReport.ascx.cs" Inherits="ExtendedServicesReportingPortal.Views.Reports.VendorReport" %>
<uc1:RazorReportViewer ID="VendorReportViewer" runat="server" ...Omitted Custom Properties... />
但我得到这个错误,如果我尝试访问模型:
The ViewUserControl '~/Views/Reports/RazorReportViewer.ascx' cannot find an IViewDataContainer object. The ViewUserControl must be inside a ViewPage, a ViewMasterPage
这里是相关的控制器控制器方法:
public ActionResult TransactionCountsAndInvoiceAmounts(TransactionCountsAndInvoiceAmountsModel model)
{
if(model == null) model = new TransactionCountsAndInvoiceAmountsModel();
return View(model);
}
非常新的MVC,我错过了什么?
我认为这里的问题是,你正在使用一个用户控件的ViewPage.Model
属性将是空的,因为控件没有访问/使用ViewData。您可能需要将模型传递给用户控件。
这里和这里都有一些例子,展示了在MVC视图中重用Web Form用户控件,包括传入模型。