Asp.Net core Razor页面的请求方法

我们知道可以将代码和模型放在.cshtml文件里面或与.cshtml匹配的.cshtml.cs文件中。

Razor页面处理程序或处理方法将用户请求匹配到我们的方法,请求来自.cshtml文件。

Razor页面遵循特定的命名约定。例如下面这些:

  • OnGet
  • OnPost
  • OnGetAsync
  • OnPostAsync
  • OnPostStudent

从上面的例子中我们可以看到该命名都是以"On"开头,然后跟上它的请求方式,其次是可选的Handler名称,最后以Async结尾表示它是异步。

默认的请求处理方法:

默认的post请求,如果不指定action,它会找OnPost()方法。如果有,则调用对应的方法,没有的话将不触发任何方法。

<form method="post">
    <input type="text" />
</form>
public void OnPost()
{
    
}

如果您同时实现OnPost()和OnPostAsync,则会出现以下错误:

如果我们的页面有多个post请求,例如下面:

public void Post()
{

}

public void PostFirst()
{

}

我们可以采用给form表单添加asp-page-handler属性来自定义请求处理方法:

<form method="post" asp-page-handler="First">
     <input type="text" />
</form>

上面的请求将请求PostFirst()方法,因为该方法的Handler和表单对应的属性对应。

处理方法参数

将参数传递给处理方法有两种方法:

  • 表单输入
  • 表单元素借助asp-route Tag Helper

通过表单输入传递参数:

<form method="post">
    <input type="text" name="name"/>
</form>
public void OnPost(string name)
{
    
}

通过路由传递参数:

第一个请求将请求OnPost方法并给参数name赋值为666。

第二个请求将请求OnPostRemove方法,并给参数id赋值为1。

<form method="post" asp-route-name="666">
    
</form>

<form method="post" asp-route-handler="Remove" asp-route-id="1">

</form>
public void OnPost(string name)
{
    
}
public void OnPostRemove(int id)
{

}

 

转载于:https://www.cnblogs.com/shx666/p/7833899.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值