ASP.NET代码优化方法?ASP.NET性能提升技巧
- 技术教程
- 2026-02-08
- 4032
模型 (Models/User.cs)
public class User { public int Id { get; set; } [Required(ErrorMessage = "请输入用户名")] [Display(Name = "用户名")] public string Name { get; set; } [EmailAddress(ErrorMessage = "邮箱格式不正确")] [Display(Name = "电子邮箱")] public string Email { get; set; } }
控制器 (Controllers/UserController.cs)
public class UserController : Controller { // 用户列表 private static List<User> _users = new(); // GET: /User/Register public IActionResult Register() { return View(); } // POST: /User/Register [HttpPost] [ValidateAntiForgeryToken] public IActionResult Register(User user) { if (ModelState.IsValid) { user.Id = _users.Count + 1; _users.Add(user); return RedirectToAction("Details", new { id = user.Id }); } return View(user); } // GET: /User/Details/1 public IActionResult Details(int id) { var user = _users.FirstOrDefault(u => u.Id == id); if (user == null) return NotFound(); return View(user); } }
视图 (Views/User/Register.cshtml)
@model User <h2>用户注册</h2> @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-group"> @Html.LabelFor(m => m.Name) @Html.TextBoxFor(m => m.Name, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.Name) </div> <div class="form-group"> @Html.LabelFor(m => m.Email) @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) @Html.ValidationMessageFor(m => m.Email) </div> <button type="submit" class="btn btn-primary">提交</button> }
路由配置 (Program.cs)
var builder = WebApplication.CreateBuilder(args); // 添加MVC服务 builder.Services.AddControllersWithViews(); var app = builder.Build(); // 配置中间件 app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); // 配置路由 app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();
启动页面 (Views/Home/Index.cshtml)
@{ ViewData["Title"] = "首页"; } <h1>欢迎使用ASP.NET Core</h1> <a href="@Url.Action("Register", "User")" class="btn btn-success">用户注册</a>
主要功能说明:
-
模型验证:
- 使用Data Annotations进行验证(Required, EmailAddress)
- 客户端和服务端双重验证
-
安全特性:

- [ValidateAntiForgeryToken] 防止CSRF攻破
- 自动生成的防伪令牌(@Html.AntiForgeryToken())
-
路由系统:

- 基于约定的路由(/Controller/Action/Id)
- 支持参数传递
-
依赖载入:

内置DI容器自动载入服务
运行效果:
- 访问 显示首页
- 点击”用户注册”跳转到表单页
- 提交后显示用户详情页
注意:此示例使用内存静态列表存储数据,实际项目中应使用数据库(如Entity Framework Core)。
进阶扩展建议:
// 添加数据库支持 builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default"))); // 使用真实数据库 public class AppDbContext : DbContext { public DbSet<User> Users { get; set; } }
这个示例展示了ASP.NET Core的核心功能:
- MVC模式分离
- Razor视图引擎
- 模型绑定和验证
- 中间件管道
- 依赖载入
- RESTful路由
可根据需求扩展为Web API、身份认证、实时通信等功能。