对于标题不清楚的道歉,但不知道如何指定它,请随时编辑我的问题。
我设法在Razor Pages中为给定的代码编写等效代码:
我的标记:
<a asp-page="./Index" asp-route-id="@Model.InstructorID" asp-route-courseID="@item.CourseID">Select</a>
这导致以下HTML:
<a href="/Instructors/2?courseID=1045">Select</a>
第二个标记:
@Html.ActionLink("Select", "OnGetAsync", new { courseID = item.CourseID })
这导致以下HTML:
<a href="/Instructors/2?courseID=1045&action=OnGetAsync">Select</a>
我想知道的是:除了生成的不同网址以及网址中的不同部分是什么意思之外,两者之间有什么区别?
修改
这是我的Startup
课程:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<Data.SchoolContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ContosoUniversityConnectionString")));
services.AddMvc();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseMvc();
}
}
答案 0 :(得分:1)
我很确定,Html.ActionLink无法与Razor Pages一起正常工作,因为它正在生成路由信息中的链接,并与控制器和操作相关。 Razor Pages没有控制器和操作。所以AnchorTagHelper在这里效果最好。