【问题标题】:Post JSON to Razor Page, return HTML将 JSON 发布到 Razor 页面,返回 HTML
【发布时间】:2020-08-11 15:15:29
【问题描述】:

用户填写表单后,我需要将表单内容以 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"
    }
}

【问题讨论】:

标签: asp.net-core razor-pages


【解决方案1】:

您应该确保 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] 属性。

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 2018-10-11
    • 2019-10-19
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2021-11-02
    相关资源
    最近更新 更多