使用业务对象作为模型不起作用?

时间:2019-02-15 08:21:48

标签: asp.net-mvc

当我将一个类liabray作为具有Employee和EmployeeBusinessLayer类的名为BusinessLayer的业务对象添加到我的MVC项目中时,我遇到了麻烦。单击家庭控制器的索引部分中的添加视图,然后我应该将Employee(BusinessLayer)作为模型类。但是实际上,员工(BusinessLayer)不会出现在那里吗?

我想在我的MVC项目中使用业务对象作为模型。我创建了一个名为BusinessLayer的ClassLiabrary,其中有两个名为Employee和EmployeeBusinessLayer的类。 EmployeeBusinessLayer类具有一个返回雇员列表的属性。之后,我在HomeController的索引动作中创建了EmployeeBusinessLayer对象。视图的雇员的对象返回列表。然后,右键单击索引部分以添加视图。视图名称文本框已经具有文本“索引”,并且我选择了模板作为列表。但是“模型类”文本框仅具有RouteConfig(UsingBusinessObjectAsModel),我希望成为Employee(BusinessLayer)吗?

Namespace UsingBusinessObjectAsModel.Controllers
{
    public class HomeController: Controller
    {
         // GET: Home
         public ActionResult Index()
         {
             EmployeeBusinessLayer employeeBusinessLayer = new 
             EmployeeBusinessLayer();
             List<Employee> employees = 
             employeeBusinessLayer.Employees.ToList();
             return View (employees);
         }
    }
}

这是我的BusinessLayer:

namespace BusinessLayer
{
    public class EmployeeBusinessLayer
    {
        public IEnumerable<Employee> Employees
        {
            get
            {
                string connectionString = 
              ConfigurationManager.ConnectionStrings["Test"].ConnectionString;
              List<Employee> employees = new List<Employee>();

              using (SqlConnection con = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand("spGetAllEmployees", con);
                    con.Open();
                    SqlDataReader rdr = cmd.ExecuteReader();
                    while (rdr.Read())
                    {
                        Employee employee = new Employee();
                        employee.Id = Convert.ToInt32(rdr["EmployeeId"]);
                        employee.Name = rdr["Name"].ToString();
                        employee.Gender = rdr["Gender"].ToString();
                        employee.City = rdr["City"].ToString();
                        employees.Add(employee);

                    }

                }
                return employees;

            }

        }
    }
}

我希望当我右键单击索引操作以添加视图和视图名称并选择模板时,模型类应该具有Employee(BusinessLayer)的选项,但它只有RouteConfig(UsingBusinessObjectAsModel)。

1 个答案:

答案 0 :(得分:1)

您是否重建了所有项目?如果Business项目没有构建为dll,则这些类未显示在“模型”列表中。