大家好,感谢您的帮助。我正在用C#学习MVC 5。我看到的大多数示例都基于MVC项目中包含的模型。但是,我认为大多数"现实世界"应用程序将使用某些类型的外部数据访问库,可以由Web应用程序之外的应用程序使用。考虑到这一点,我设置了一个类库,其中包含一个方法来调用数据库,填充模型并返回一个列表。我使用名为CustomerDetails的类调用了类库CustomerDB。数据访问方法GetCustomerDetails(int custID)返回:
List<CustomerDB.CustomerDetails> CustomerDetails
特定于custID。然后,在MVC项目的控制器中,我想调用外部类并检索列表,但不知道如何将此列表合并到MVC项目的模型中。任何帮助将不胜感激。
我的初始帖子在细节上是通用的,所以让我更具体一点。这是我的外部类的代码:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PatientManagerDB
{
public class tblPtmstr1
{
public int PatientID { get; set; }
public string PatientLastName { get; set; }
public string PatientFirstName_Old { get; set; }
public string PatientFirstName { get; set; }
public string PatientMiddleName { get; set; }
public List<tblPtmstr1> PatientDetails = new List<tblPtmstr1>();
public List<tblPtmstr1> GetPatientDetails(string MRNumber)
{
//Code to retrieve data and populate PatientDetails List
}
}
}
我的想法是,由于这个类将由MVC Web应用程序以及其他应用程序使用,因此将它存储在单独的外部类中是有意义的,然后从任何应用程序需要它引用它。我遇到问题的方法是如何在MVC应用程序中将List放入某种类型的可用模型中。在MVC项目中,我尝试创建模型:
namespace myProject.Models
{
public class Patient
{
public List<PatientManagerDB.tblPtmstr1> PatientDetails { get; set; }
}
在控制器中,我尝试了许多方法来调用GetPatientDetails函数,并将Patient属性设置为等于方法返回的列表。似乎大多数真实世界的应用程序都会以这种方式运行,不需要实际模型在MVC应用程序中,但我似乎无法弄清楚如何执行此操作(或者即使可以完成此操作)