在POST方法中的Get方法中设置的访问值

时间:2018-04-07 03:30:44

标签: asp.net-core-2.0 razor-pages

问题很简单,但我找不到解决方案,因为我还是新手.net核心

我有这段代码

[BindProperty]
    public string Feedback { get; set; }
    [BindProperty]
    public List<int> IDList { get; set; }

    public void OnGet(string SB, List<int> IDs)
    {
        Feedback = SB;
        IDList = IDs;
    }

    public IActionResult OnPost()
    {
        return RedirectToPage("./InviteGroup", new { id = this.IDList });
    }

在Get Method中,一切正常,但在POST中,IDList为空 这是我的HTML

<h2>Feedback</h2>
<form id="frm3" method="post">
<input type="hidden" asp-for="@Model.IDList" />
<div>@Html.Raw(Model.Feedback)</div>

我尝试添加隐藏的输入,但它没有改变任何东西。 请帮忙,我一直试图解决这个问题3个小时。

1 个答案:

答案 0 :(得分:1)

要获取Get方法中的值,请将值作为Url的一部分传递。这意味着您可以使用与Get方法中相同的方法在Post方法中访问此值。

[BindProperty]
public string Feedback { get; set; }
[BindProperty]
public List<int> IDList { get; set; }

public void OnGet(string SB, List<int> IDs)
{
    Feedback = SB;
    IDList = IDs;
}

public IActionResult OnPost(string SB, List<int> IDs)  
{
    Feedback = SB;
    IDList = IDs;

    return RedirectToPage("./InviteGroup", new { id = this.IDList });
}

如果您使用了Get方法中的值,那么您也可以在Post中获取它们。