首页 > 解决方案 > 在查看 ASP.NET MVC 中调用存储过程

问题描述

我已经创建了一个存储过程并在Controller中调用了它,那么下一个问题是当我在视图类下面调用此方法时出现错误,任何人都可以帮忙吗?

public ListResponse<ViewStoredGraphRow> GetDataGraph()
{
    using (var connection = SqlConnections.NewFor<TryGraphRow>())
    {
       var data = connection.Query<Item>("StoreGraph",
            param: new
            {
                StartDate = 2018 - 07 - 07,
                EndDate = 2018 - 07 - 09
            },
            commandType: System.Data.CommandType.StoredProcedure);

        TestPesan tp = new TestPesan();

        var response = new ListResponse<ViewStoredGraphRow>();
        response.Entities = (List<ViewStoredGraphRow>)data;

        return response;
    }
}

这是我的错误

在此处输入图像描述

谢谢!

标签: c#asp.netasp.net-mvc

解决方案


没问题。一旦你的视图被渲染,你的控制器就已经被实例化了。您不需要它的另一个实例,只需获取对现有实例的引用即可。因此,不要在您看来这样做:

var data = new DashboardController().GetDataGraph();

做这个:

var controller = ViewContext.Controller as DashboardController;
var data = controller.GetDataGraph();

祝你好运!


推荐阅读