我们将介绍如何在ASP项目中创建控制器和服务器端代码。
##第五部分:创建控制器
在ASP项目中,控制器负责处理来自浏览器的请求并执行相应的操作。为了创建一个控制器,请按照以下步骤操作:
1. 在解决方案资源管理器中,右键单击“Controllers”文件夹,然后选择“添加”>“类”。
2. 在弹出的对话框中,输入控制器类的名称,例如“HomeController”,然后单击“添加”。
3. 在生成的控制器类中,你会看到一个名为“Index”的方法。这个方法是默认生成的,用于处理主页的请求。在此方法中,我们需要执行以下操作:
```csharp
using System;
using System.Web.Mvc;
namespace MvcMovie.Controllers
{
public class HomeController : Controller
{
// 其他方法...
public ActionResult Index()
{
//这里将添加服务器端代码
return View();
}
}
}
```
4. 现在,我们需要在控制器中添加服务器端代码。在“Index”方法内部,添加以下代码:
```csharp
string movieTitle = "欢迎来到MVC电影示例!";
ViewBag.Title = movieTitle;
```
这段代码将设置页面的标题为“欢迎来到MVC电影示例!”。
5.保存控制器类,然后运行项目。访问主页,您将看到设置的标题。
##第六部分:创建服务器端代码
在ASP项目中,服务器端代码主要负责处理业务逻辑和与数据库交互。在本教程中,我们将创建一个简单的服务器端代码来演示如何操作。
1.首先,在解决方案资源管理器中,右键单击“Controllers”文件夹,然后选择“添加”>“类”。
2. 在弹出的对话框中,输入服务器端代码类的名称,例如“MovieService”,然后单击“添加”。
3. 在生成的服务器端代码类中,添加以下代码:
```csharp
using System;
using System.Data.SqlClient;
using System.Web.Mvc;
namespace MvcMovie.Services
{
public class MovieService
{
private string connectionString = "您的连接字符串";
public List<Movie> GetMovies()
{
List<Movie> movies = new List<Movie>();
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT * FROM Movies";
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
movies.Add(new Movie
{
Title = reader["Title"],
Description = reader["Description"],
ReleaseDate = reader["ReleaseDate"]
});
}
}
}
}
return movies;
}
}
public class Movie
{
public string Title { get; set; }
public string Description { get; set; }
public DateTime ReleaseDate { get; set; }
}
}
```
这段代码定义了一个名为“MovieService”的服务器端代码类,它包含一个名为“GetMovies”的方法,用于从数据库中检索电影信息。
4.为了在控制器中使用这个服务器端代码类,我们需要首先创建一个movies模型。在解决方案资源管理器中,右键单击“Models”文件夹,然后选择“添加”>“类”。
5. 在弹出的对话框中,输入模型类的名称,例如“Movie”,然后单击“添加”。
6. 在生成的模型类中,添加以下代码:
```csharp
namespace MvcMovie.Models
{
public class Movie
{
public string Title { get; set; }
public string Description { get; set; }
public DateTime ReleaseDate { get; set; }
}
}
```
大型站长资讯类网站!