带有下拉列表的 ASP.NET MVC-5 CRUD 应用程序






4.84/5 (22投票s)
ASP.NET MVC 5 应用程序
引言
本教程将教你使用 Visual Studio 2013 构建 ASP.NET MVC 5 Web 应用程序的基础知识。我将通过简单的屏幕截图逐步展示操作。准备好开始这段旅程吧。
你需要了解 ASP.NET、SQL Server 2008 R2 和 Visual Studio 2013。

- M模型:代表应用程序数据的类,并使用验证逻辑来强制执行这些数据的业务规则。
- V视图:你的应用程序用来动态生成 HTML 响应的模板文件。
- C控制器:处理传入浏览器请求、检索模型数据,然后指定视图模板以返回响应到浏览器的类。
MVC 是如何工作的?

应用程序流程

现在创建项目
- 打开 Visual Studio 2013,选择新建项目
 
 
- 选择 ASP.NET Web 应用程序,并为项目命名为 MyMVCApp,然后点击确定。

- 然后选择 MVC,并点击确定按钮。


- 现在在模型上右键单击,添加,然后选择新建项

- 现在选择 ADO.NET Entity Data Model,输入名称“MyAppEDM”,然后点击添加按钮。

- 现在选择从数据库生成,然后点击下一步。

- 现在点击新建连接。



- 现在输入用户名和密码(如果你使用 SQL Server 身份验证),并选择你的数据库,例如 dbMYDAT,然后测试连接,并点击确定按钮。

- 现在点击保存实体连接设置,然后点击下一步。

- 现在选择你想要使用的表、视图、存储过程等,然后点击完成。


- 现在创建一个控制器,并命名为“StuInfoController”。在创建控制器之前,你需要构建应用程序。




对于上述错误,你需要重新构建应用程序。

- 现在在 RouteConfig 中,将默认控制器“Home”重命名为“StuInfo”控制器。

- 现在运行应用程序,你可能会看到以下屏幕。

- 现在你可以创建新的了。


代码
模型
 public partial class stuInfo
    {
        [Required]
        public string ID { get; set; }
        [StringLength(20, ErrorMessage = "Max length 30 characters")]
        public string Name { get; set; }
        [Required]
        public string Dept { get; set; }
        [Required]
        public string Subject { get; set; }
    
        public virtual DeptInfo DeptInfo { get; set; }
        public virtual SubjectInfo SubjectInfo { get; set; }
    }
Web config
  <connectionStrings>
    <add name="dbMYDATAEntities" connectionString="metadata=res://*/Models.MyAppEDM.csdl|res://*/Models.MyAppEDM.ssdl|res://*/Models.MyAppEDM.msl;provider=System.Data.SqlClient;provider connection string="data source=IT-WS08\SQLEXPRESS;initial catalog=dbMYDATA;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
  </connectionStrings>
表脚本

Stuinfo
USE [dbMYDATA]
GO
/****** Object:  Table [dbo].[stuInfo]    Script Date: 08/27/2014 12:06:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[stuInfo](
      [ID] [nchar](10) NOT NULL,
      [Name] [nvarchar](max) NULL,
      [Dept] [nchar](10) NULL,
      [Subject] [nchar](10) NULL,
 CONSTRAINT [PK_stuInfo] PRIMARY KEY CLUSTERED
(
      [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[stuInfo]  WITH CHECK ADD  CONSTRAINT [FK_stuInfo_DeptInfo] FOREIGN KEY([Dept])
REFERENCES [dbo].[DeptInfo] ([ID])
GO
ALTER TABLE [dbo].[stuInfo] CHECK CONSTRAINT [FK_stuInfo_DeptInfo]
GO
ALTER TABLE [dbo].[stuInfo]  WITH CHECK ADD  CONSTRAINT [FK_stuInfo_SubjectInfo] FOREIGN KEY([Subject])
REFERENCES [dbo].[SubjectInfo] ([Id])
GO
ALTER TABLE [dbo].[stuInfo] CHECK CONSTRAINT [FK_stuInfo_SubjectInfo]
GO
DeptInfo
USE [dbMYDATA]
GO
/****** Object:  Table [dbo].[DeptInfo]    Script Date: 08/27/2014 12:07:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DeptInfo](
      [ID] [nchar](10) NOT NULL,
      [Dept] [nvarchar](50) NULL,
 CONSTRAINT [PK_DeptInfo] PRIMARY KEY CLUSTERED
(
      [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SubjectInfo
USE [dbMYDATA]
GO
/****** Object:  Table [dbo].[SubjectInfo]    Script Date: 08/27/2014 12:07:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SubjectInfo](
      [Id] [nchar](10) NOT NULL,
      [Subject] [nvarchar](max) NULL,
 CONSTRAINT [PK_SubjectInfo] PRIMARY KEY CLUSTERED
(
      [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
非常感谢你的耐心。
参考文献
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
电子书:Programming ASP.NET MVC 5 A Problem Solution Approach


