模型 (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、身份认证、实时通信等功能。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/287997.html

