C#,N层,MVC |错误:“对象引用未设置为对象的实例”

问题描述

所以我正在用C#开发MVC n层应用程序,并且得到了NullReferenceExeption。 程序应该做什么: 用户可以输入诸如防御,进攻等字符类型。 该字符串被传递到控制器中并成为参数。接下来,应将此参数传递到逻辑层。在这里,它应该将参数传递给DAL。在DAL中,该参数用于查询中以从数据库获取某些数据。此数据应发回逻辑层,并从逻辑层发回,并应显示用户的屏幕上。

我在Logic层中得到了错误(我在逻辑层中注释了错误发生的确切位置。

传递参数不是问题,因为我通过断点知道inputKarakterSoort的值是用户键入的给定值。

我的DAL应该返回数据,所以我不知道为什么得到NullReferenceExeption。 我的控制器从用户那里得到一个字符串,将给定的字符串变成一个参数,该参数在DAL中用于执行查询

这是我的DAL:

public IEnumerable<IKarakter> GetSortedKarakters(string inputKarakterSoort)            {
            using (sqlConnection connection = GetConnection())
            {
                connection.open();
                var command = new sqlCommand("SELECT TOP 2 * FROM Karakter WHERE KarakterSoort = @inputKarakterSoort ORDER BY NEWID();",connection);
                command.Parameters.Add("@inputKarakterSoort",sqlDbType.VarChar).Value = inputKarakterSoort;
                var reader = command.ExecuteReader();
                var sortedKarakters = new List<IKarakter>();
                while (reader.Read())
                {
                    var karakter = new KarakterDTO
                    {
                        KarakterId = (int)reader["KarakterId"],KarakterSoort = reader["KarakterSoort"]?.ToString(),KarakterNaam = reader["KarakterNaam"]?.ToString()
                    };
                    sortedKarakters.Add(karakter);
                }
                return sortedKarakters;
            }
        }

我的逻辑层(其中有错误):

public class SortedKarakterLogic : ISortedKarakterLogic
    {
        private ISortedKarakterContext sortedKarakterContext { get; }
        private string _inputKarakterSoort { get; set; }
        public SortedKarakterLogic(ISortedKarakterContext sortedContext)
    {
        sortedKarakterContext = sortedContext;
    }

        public SortedKarakterLogic(string inputKarakterSoort)
        {
            _inputKarakterSoort = inputKarakterSoort;
        }

        public IEnumerable<IKarakter> GetSortedKarakters(string inputKarakterSoort)
        {
            
            return sortedKarakterContext.GetSortedKarakters(inputKarakterSoort);
//The error is on the line above,sortedKarakterContext is equal to null,but I don't kNow why or how.
        }
    }

我的控制器:

public ActionResult SortedKarakter()
        {
            return View();
        }

        [HttpPost]
        public ActionResult SortedKarakter(string karakterSoort)
        {
            SortedKarakterLogic karakterLogic = new SortedKarakterLogic(karakterSoort);
            karakterLogic.GetSortedKarakters(karakterSoort);
            ViewBag.Name = string.Format("{0}",karakterSoort);
            var sortedKarakters = _sortedKarakterLogic.GetSortedKarakters(karakterSoort);
            var _sortedKarakters = new List<Karakterviewmodel>();
            foreach (var karakter in sortedKarakters)
            {
                _sortedKarakters.Add(new Karakterviewmodel
                {
                    KarakterId = karakter.KarakterId,KarakterNaam = karakter.KarakterNaam,KarakterSoort = karakterSoort
                });
            }
            
            return View(_sortedKarakters);
        }

我通过ViewBag获得了字符串,

如果您需要查看接口或其他类,只需在评论中提问,我将文件上传到该问题。 谁能帮我? 预先感谢!

注意:我不能在DAL中使用断点,因为它甚至都不会到达那里。当它遍历逻辑层时就会出错。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...