asp.net-core - 将 JSON 发布到 Razor 页面,返回 HTML
问题描述
用户填写表单后,我需要将表单内容以 JSON 格式发回,并获取一大块 HTML 以供显示。这对于剃刀页面来说似乎是一个很好的案例。OnPost 处理程序上的 BrandTemplateInfo 参数始终为空。我似乎无法从模型活页夹中填充 BrandTemplateInfo。我在这里想念什么?这对于 MVC 控制器来说过去很容易。我在这里想念什么?帮助?
public class PayNowCardModel : PageModel
{
public void OnGet()
{
}
public IActionResult OnPost([FromBody] BrandTemplateInfo brandTemplateInfo)
{
return Page();
}
public BrandTemplateInfo BrandTemplateInfo { get; set; }
}
HTTP 请求:
POST /terms/paynowcard HTTP/1.1
Host: xxxxxxxx
Content-Type: application/json
Cache-Control: no-cache
{
"userForm": {
"cardNumber": "4111111111111111",
"paymentAmount": 123.33
},
"account": {
"Creditor": {
"Name": "big time creditor"
},
"accountId": "32432432432423"
}
}
解决方案
您应该确保该BrandTemplateInfo
对象具有与发布的 json 属性相同的名称属性:
public class BrandTemplateInfo
{
public userForm userForm { get; set; }
public account account { get; set; }
}
public class account
{
public Creditor Creditor { get; set; }
public string accountId { get; set; }
}
public class Creditor
{
public string Name { get; set; }
}
public class userForm
{
public string cardNumber { get; set; }
public float paymentAmount { get; set; }
}
因此该模型绑定将与[FromBody]
attribute 一起使用。
推荐阅读
- java - 无法在java中写入我的属性文件
- go - 使用 Golang 从文本文件末尾读取特定内容的有效方法
- flutter - 在颤动中获取 LayoutBuilder 高度
- ionic-framework - 如何在 ion-datetime 中设置最小和最大时间
- python-3.x - Python中的另一个自动点击器,不能为热键按钮触发启动/停止和启动/暂停,需要一些想法来中断循环
- html - InfinityFree 从其他页面重定向到 index.html 页面的问题
- python - FastText .bin 文件无法放入内存,即使我有足够的 RAM
- excel - 根据年份列中的最大数量将明年日期导入表格,我的代码冻结
- .net - 为什么浏览器网络在使用 https/ssl 后显示消息正文和标题
- android - Stripe Intent API 持有卡,然后收费不工作