ASP.NET Core Razor Pages 带参数的路由可以通过在路由模板中添加参数占位符来实现。下面是一个示例:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace YourNamespace.Pages
{
public class DetailsModel : PageModel
{
public string Message { get; private set; }
public IActionResult OnGet(int id)
{
// 处理参数并返回页面
Message = "您请求的ID是:" + id;
return Page();
}
}
}
@page "/details/{id}"
@model YourNamespace.Pages.DetailsModel
Details Page
@Model.Message
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace YourNamespace
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
}
}
在这个示例中,我们创建了一个名为"Details"的Razor页面和一个名为"DetailsModel"的Razor PageModel。在路由模板@page "/details/{id}"
中,我们定义了一个名为"id"的参数占位符。然后在OnGet
方法中,我们使用int id
参数来接收传入的参数,并在Message
属性中进行处理。最后,在Details.cshtml页面中,我们通过@Model.Message
来显示处理后的结果。
当访问"/details/123"时,页面将显示"您请求的ID是:123"。