ASP.NET Razor学习笔记
本文档为ASP.NET Razor的学习笔记,主要介绍Razor的基本语法和常见用法,并通过实例进行说明。
Razor基本语法
变量输出
使用@符号可以将变量输出到HTML页面上,如下所示:
htmlCopy Code<p>欢迎来到@ViewBag.Title的页面!</p>
控制流程语句
使用if语句、for循环和while循环可以控制流程,如下所示:
htmlCopy Code@if (ViewBag.IsLoggedIn)
{
<p>你已经登录了</p>
}
else
{
<p>请先登录</p>
}
@foreach (var item in ViewBag.Items)
{
<li>@item</li>
}
@while (ViewBag.HasNextPage)
{
<a href="?page=@ViewBag.PageNumber">下一页</a>
ViewBag.PageNumber++;
}
HTML辅助方法
使用@Html可以调用多个针对HTML的辅助函数,如下所示:
htmlCopy Code@Html.DisplayFor(model => model.Name) @Html.EditorFor(model => model.Age) @Html.ActionLink("点击链接", "Index")
实例演示
下面我们通过一个简单的实例来说明Razor的用法。
实例描述
在这个实例中,我们将制作一个简单的网页,该网页包含一个商品列表,每个商品都有名称、描述和价格。我们还将创建一个表单,以便用户可以提交新的商品。
实现步骤
步骤一:创建商品模型
在Models文件夹下创建Product.cs文件,代码如下所示:
csharpCopy Codepublic class Product
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
}
步骤二:创建控制器
在Controllers文件夹下创建HomeController.cs文件,并添加如下代码:
csharpCopy Codepublic class HomeController : Controller
{
private List<Product> _products = new List<Product>
{
new Product { Id = 1, Name = "商品1", Description = "描述1", Price = 10.00m },
new Product { Id = 2, Name = "商品2", Description = "描述2", Price = 20.00m },
new Product { Id = 3, Name = "商品3", Description = "描述3", Price = 30.00m }
};
public IActionResult Index()
{
return View(_products);
}
[HttpPost]
public IActionResult Create(Product product)
{
product.Id = _products.Count + 1;
_products.Add(product);
return RedirectToAction("Index");
}
}
在Index方法中,我们返回_View视图,并将_products作为参数传递。在Create方法中,我们使用[HttpPost]特性,以便当用户提交表单时调用此方法。我们还在这个方法中将新的商品添加到_products列表中。
步骤三:创建视图
在Views文件夹下创建Home文件夹,并添加两个视图:Index.cshtml和Create.cshtml。代码如下所示:
Index.cshtml
htmlCopy Code@model List<Product>
<h2>商品列表</h2>
<a asp-action="Create">添加商品</a>
<table>
<thead>
<tr>
<th>名称</th>
<th>描述</th>
<th>价格</th>
</tr>
</thead>
<tbody>
@foreach (var product in Model)
{
<tr>
<td>@product.Name</td>
<td>@product.Description</td>
<td>@product.Price.ToString("c")</td>
</tr>
}
</tbody>
</table>
Create.cshtml
htmlCopy Code@model Product
<h2>添加商品</h2>
<form asp-controller="Home" asp-action="Create" method="post">
<div>
<label>名称:</label>
<input name="Name" />
</div>
<div>
<label>描述:</label>
<input name="Description" />
</div>
<div>
<label>价格:</label>
<input name="Price" />
</div>
<button type="submit">提交</button>
</form>
在Index视图中,我们使用@model设置模型类型,并在页面上显示一个链接,以调用Create方法。我们还使用一个表格来显示_products列表。在Create视图中,我们再次使用@model设置模型类型,并创建了一个HTML表单,以便用户可以输入新商品的信息。
运行效果
最终我们可以得到一个简单的商品列表网页,如下所示:
当点击“添加商品”链接时,将打开一个包含表单的新页面。用户可以在这个页面中输入新商品的信息并提交表单。
结论
本文档介绍了ASP.NET Razor的基本语法和常见用法,并通过一个简单的实例演示了如何使用Razor创建一个Web应用程序。希望本文档能够帮助你理解Razor的用法并提高Web开发技能。