简体   繁体   English

在ASP.NET Web表单中将Ninject与objectdatasource一起使用?

[英]Using Ninject with objectdatasource in asp.net webforms?

I am trying to use Ninject 3 in my asp.net webforms application. 我正在尝试在asp.net Webforms应用程序中使用Ninject 3。 It works fine except some pages that contains ObjectDataSource , the Select method of the ObjectDataSource throws a NullReferenceException . 它工作正常,除了包含一些网页ObjectDataSource时, Select的方法ObjectDataSource抛出一个NullReferenceException My code is as follows : 我的代码如下:

Web.Admin.Grades.aspx : Web.Admin.Grades.aspx

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
                    EnablePaging="true" TypeName="Web.Admin.Grades"
                    SelectMethod="GetData" SelectCountMethod="GetDataCount"
                    StartRowIndexParameterName="StartRowIndex" MaximumRowsParameterName="MaximumRows">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="SearchTxtBox" Type="String" Name="SearchKeyWord" PropertyName="Text" />
                    </SelectParameters>
                </asp:ObjectDataSource>

Web.Admin.Grades.cs : Web.Admin.Grades.cs

[Inject]
public IGradesRepository _Grades { get; set; }

public IList GetData(string SearchKeyWord, int StartRowIndex, int MaximumRows)
{
    return _Grades.GetGrades(SearchKeyWord, StartRowIndex, MaximumRows);
}

public int GetDataCount(string SearchKeyWord)
{
    return _Grades.GetGradesCount(SearchKeyWord);
}

Sorry for misunderstanding I solve the problem as follows 抱歉造成误解,我解决了以下问题

 <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
                EnablePaging="true" TypeName="Domain.Abstract.IGradesRepository"
                SelectMethod="GetGrades" SelectCountMethod="GetGradesCount"   OnObjectCreating="ObjectDataSource1_ObjectCreating"
                StartRowIndexParameterName="StartRowIndex" MaximumRowsParameterName="MaximumRows">
                <SelectParameters>
                    <asp:ControlParameter ControlID="SearchTxtBox" Type="String" Name="SearchKeyWord"  PropertyName="Text" />
                </SelectParameters>
            </asp:ObjectDataSource>

and Web.Admin.Grades.cs: 和Web.Admin.Grades.cs:

[Inject]
    public IGradesRepository _Grades { get; set; }
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
    {
        e.ObjectInstance = _Grades;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM