在ASP.NET MVC Core中,可以使用ViewModel来封装业务逻辑和数据注释。以下是一个示例:
首先,创建一个ViewModel类,用于封装业务逻辑和数据注释:
public class MyViewModel
{
[Required(ErrorMessage = "Name is required")]
public string Name { get; set; }
[Range(1, 100, ErrorMessage = "Age must be between 1 and 100")]
public int Age { get; set; }
// 其他业务逻辑和属性...
}
然后,在控制器中使用此ViewModel:
public class MyController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(MyViewModel model)
{
if (ModelState.IsValid)
{
// 执行业务逻辑
// ...
return RedirectToAction("Success");
}
return View(model);
}
public IActionResult Success()
{
return View();
}
}
在上面的代码中,Index
方法使用MyViewModel
作为参数来接收表单提交的数据。然后,使用ModelState.IsValid
来检查模型的数据注释是否有效。
在视图中,可以使用asp-validation-summary
和asp-validation-for
标签来显示数据注释的错误信息:
在上面的代码中,asp-validation-summary
标签用于显示所有模型数据注释的错误信息,asp-validation-for
标签用于显示特定属性的错误信息。
最后,在Startup.cs
文件中,需要添加数据注释服务:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddMvc().AddDataAnnotationsLocalization();
}
通过上述步骤,您就可以在ASP.NET MVC Core中使用ViewModel并实现数据注释了。