在使用Razor的ajax调用中,绑定属性为null

在使用Razor的ajax调用中,绑定属性为null,razor,razor-pages,Razor,Razor Pages,假设我有一个绑定的文本区域: .cshtml: <div class="form-group"><textarea class="form-control" asp-for="Header" rows="3> </textarea> </div> <button type="button" id="printTestButton" asp-page-handler="PrintPreview" class="btn btn-primary"&

假设我有一个绑定的文本区域:

.cshtml:

<div class="form-group"><textarea class="form-control" asp-for="Header" rows="3> </textarea>
</div>
<button type="button" id="printTestButton" asp-page-handler="PrintPreview" class="btn btn-primary"> button </button>
因此,当我调用网页时,会调用OnGet函数。然后我将Header属性设置为等于“Foo”。神奇的是,我可以在UI上看到textarea包含字符串“Foo”

现在的问题是:当我按下按钮,然后用Ajax调用函数OnGetTest()时,属性头是空的


如果我只是将其设置为等于“Foo”,为什么标题为null?在UI上,我们可以看到“Foo”。为什么绑定属性此时不起作用?

默认情况下,
BindProperty
属性只支持在
POST
请求中绑定属性值。您必须选择加入以支持
GET
请求:

[BindProperty(SupportsGet=true)]
public string Header { get; set; }
参考:1


1(我拥有Learn Razor Pages网站)

您是否使用JavaScript方法来处理printTestButton的点击?我认为您需要共享该代码,因为您的AJAX调用似乎没有提交数据。如果是“提交”类型的按钮,那么数据将自动提交到服务器。我尝试了,但没有成功。我仍然需要通过Ajax数据对象传递所有参数才能访问该属性。
[BindProperty(SupportsGet=true)]
public string Header { get; set; }