WTM框架使用TagHelper提供了丰富的前端控件,目前框架只支持LayUI,后期会增加更多框架整体的运转并不依赖于LayUI,开发人员可以使用最普通的Html来编写页面,框架提供的控件只是简化编写难度,提高速度前端页面中,wt:开头的为框架提供的控件。
基于LayUI的WTMTagHelper确实很好用。
例如input,就可以简单的写成这样,既能直接绑定对象,又能打印错误消息。
<wt:textbox field="Vm.Entity.LoginName" />
但是实际开发中,展示给部分客户的不一定全是 LayUI的后台页面,还有不少普通的Html页面。MVC开发者,这个时候准是在想,我改如何在WTM框架中打印模型验证消息呢?
这时候,引入ASP.NET Core自带TagHelper是一个比较不错的选择。
一、进入ASP.NET Core自带TagHelper
在Views→_ViewImports.cshtml中添加
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
在使用模型httpget方法中CreateVM,并传入视图
public class TestController : BaseController
{
public IActionResult Index()
{
TestPage vm = CreateVM<TestPage>();
return View(vm);
}
[HttpPost]
public IActionResult Index(TestPage testPage)
{
if (ModelState.IsValid)
{
return Content("ok");
}
return View(testPage);
}
}
因为继承BaseController,它会在页面渲染的时候检查模型是否继承BaseVM。
@model MineSide.Models.SqlModel.TestPage
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<form asp-action="Index" method="post">
<input type="text" asp-for="Name" />
<div asp-validation-summary="All"></div>\
<button type="submit"></button>
</form>
</body>
</html>
这样在页面中就可以正常使用ASP.NET Core自带TagHelper了。