Asp.net mvc 实体-使用下拉菜单自动创建MVC控制器
这个问题可能有一个非常基本的答案,但我对实体和MVC还不熟悉,并且已经习惯了基础知识 我正在尝试为主表站点自动生成一个MVC控制器,其中包含一个服务器下拉列表。看起来我需要一个这样的模型:Asp.net mvc 实体-使用下拉菜单自动创建MVC控制器,asp.net-mvc,entity-framework,entity-framework-4.1,Asp.net Mvc,Entity Framework,Entity Framework 4.1,这个问题可能有一个非常基本的答案,但我对实体和MVC还不熟悉,并且已经习惯了基础知识 我正在尝试为主表站点自动生成一个MVC控制器,其中包含一个服务器下拉列表。看起来我需要一个这样的模型: public class Sites { public TTSites TTSites { get; set; } public List<servers> server { get; set; } public Sites() {
public class Sites
{
public TTSites TTSites { get; set; }
public List<servers> server { get; set; }
public Sites()
{
server = new List<servers>();
}
}
公共类站点
{
公共TTSites TTSites{get;set;}
公共列表服务器{get;set;}
公共场所()
{
服务器=新列表();
}
}
这是将TTSites和servers类与string server一起使用
但是,如果我将它设置为模型类,将实体数据库设置为数据上下文,它会说我需要定义一个键。我应该使用基类而不是模型还是什么?我需要在模型或基类中设置一些内容吗?您似乎混淆了一些术语。在控制器类中对控制器操作进行编码,路由引擎根据URL确定要调用的控制器操作。例如,如果您有一个带有默认
索引
操作的HomeController
类,它可能如下所示:
public ActionResult Index()
{
// code here
}
如果您使用这样的URL访问您的站点(假设您的站点可以通过www.mysite.com
URL:
http://www.mysite.com/Home
这将使您进入控制器中的索引
操作
通常,用户会使用一个视图模型来在UI端使用,该模型会从实体中填充视图本身所需的数据。如果您有两个实体,如TTSite
和Server
,您会像这样填充站点
视图模型,作为一个(非常简单的)示例:
我不包括任何关于下拉列表的内容,只是演示如何将数据导入视图模型,然后使用该视图模型创建视图
请注意,您不会将Sites
类用作实体,而是用作视图模型,并基于数据库中的实体设置其数据。您不会在视图模型类中设置任何主键;这些是数据模型关心的问题,您可能已经获得了这些实体(例如TTSite
)在数据层中以可用的方式设置
一旦有了控制器操作和视图并开始工作,就可以将视图模型数据转换为下拉列表中可用的表单,并从中开始
public ActionResult Index()
{
var servers = yourDbContext.Servers.ToList();
var ttSite = yourDbContext.TTSites.GetByID(1); // retrieve one entity by its ID value, this would be acquired dynamically based on some sort of user input rather than hard-coded
var viewModel = new Sites(servers);
viewModel.TTSite = ttSite;
return View(viewModel);
}