在Views视图下名为_ViewImports.cshtml的文件加入代码
@addTagHelper *,Mirosoft.AspNetCore.Mvc.TagHelpers;
就可以在页面中添加tagHelper
超链接中添加tagHelper
<div>
@foreach(var student in Model)
{
<div>
<div>
姓名:@student.Name
</div>
<div>
id:@student.Id
</div>
<a href="/home/Index/@student.Id">点击我</a>
<a asp-controller="home" asp-action="Index" asp-route-id="@student.Id">点击我(副本)</a>
</div>
}
</div>
得到效果
图片中添加tagHelper
<div>
@foreach(var student in Model)
{
<div>
<div>
姓名:@student.Name
</div>
<img src="~/images/OnePiece.jpg"/>
<img src="~/images/OnePiece.jpg" asp-append-version="true"/>
<div>
id:@student.Id
</div>
<a href="/home/Index/@student.Id">点击我</a>
<a asp-controller="home" asp-action="Index" asp-route-id="@student.Id">点击我(副本)</a>
</div>
}
</div>
可以看到内容,加了asp-append-versio可以保证,生成唯一的散列值并将其附加到图片的URL。此唯一字符串会提示浏览器从服务器重新加载图片,而不是从浏览器缓存重新加载。只有当磁盘上的文件发生改变时,将会重新计算生成新的哈希值,缓存才会失效
环境中添加tagHelper
- 在配置文件中使用‘ASPNETCORE_ENVIRONMENT’变量设置应用程序环境名称
- environment tag helper支持根据不同的环境加载不同的内容,就是根据自己的环境来加载js和css
<environment include="Development">
<link rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css">
</environment>
<environment exclude="Development">
<link rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css">
</environment>
- "include"属性, 接受将单个环境名称以逗号分割的形式生成列表。
- “exclude”属性,当托管环境与exclude属性值中列出的环境名称不匹配时,将呈现标签中的内容
<environment include="Development">
<link rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous"
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css"
asp-fallback-href="~/lib/twitter-bootstrap/css/bootstrap.min.css"
asp-fallback-test-class="sr-only"
asp-fallback-test-property="position"
asp-fallback-test-value="absolute"
asp-suppress-fallback-integrity="true">
</environment>
- 使用asp-fallback-href属性指定回退源
- 通过将asp-suppress-fallback-integrity属性设置为false,就可以关闭从本地服务器下载的文件完整性检查
表单中添加tagHelper
- 下面表单提交以后,会进行post请求,并把Name/EmailClassName内容传递过去
- 如果把Create(Student student) 换成 Create(object student) 收到的会是null,模型绑定是将HTTP请求中的数据映射到控制器操作方法上对应的参数,需要对应的类才能获取到里面的参数
@model Student
.......
<form asp-controller="home" asp-action="create" method="post" >
<label asp-for="Name" ></label>
<input asp-for="Name"/>
<label asp-for="Email" ></label>
<input asp-for="Email"/>
<label asp-for="ClassName" ></label>
<select asp-for="ClassName"></select>
<button type="submit" class="btn btn-primary">创建</button>
</form>
[HttpPost]
public IActionResult Create(Student student)
{
Student newStudent = studentRepository.ADDStudent(student);
return RedirectToAction("details", new { id = newStudent.Id });
}
.....
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public ClassNameEnum ClassName { get; set; }
}