Asp.net core Post关联的几种方法

Asp.net core Post关联的几种方法

假定我们的页面是Index.cshtml和Index.cshtml.cs

1. 属性绑定,添加模型绑定[BindProperty]

Index.cshtml

<form class="form-inline" role="form" method="post">
    <div class="form-group">
        <label for="name">名称:</label>
        <input type="text" asp-for="@Model.Test1" placeholder="请输入名称">
        <input type="submit" value="提交" class="btn btn-primary btn-sm" />
        <span asp-validation-for="@Model.Test1" class="text-danger"></span>
    </div>
</form>

@*合法性判断*@
@section Scripts {
	@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Index.cshtml.cs

public class IndexModel : PageModel
{
	private readonly ILogger<IndexModel> _logger;
	public string Message;
	
	[BindProperty] // 需要绑定post才有作用
	[Required(ErrorMessage = "First Number is required.")] // 验证与错误信息
	[StringLength(10)]
	public string Test1 { get; set; }

	public void OnPost( )
	{
		if (ModelState.IsValid)
		{
			Message = Test1;
		}
	}
}

可以设置多个绑定属性,无须在OnPost中添加参数

2. 使用asp-page-handler标记

下面例子中携带了两个参数int id和string strinfo
Index.cshtml

<form asp-page-handler="view" method="post">
	<input name="id" value="3" />
	<input name="strinfo" value="abc" />
	<button class="btn btn-default">查看</button>
</form>

@*合法性判断*@
@section Scripts {
	@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Index.cshtml.cs

public class IndexModel : PageModel
{
	private readonly ILogger<IndexModel> _logger;
	public string Message;
	
	public void OnPostView(int id, string strinfo)
	{
		Message = $"View handler fired for {id}, {strinfo}";
	}
}

其中asp-page-handler=“view” 对应OnPostView,格式为OnPost+handler,handle不区分大小写

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值