為什么這個:
<form method="post">
<nav>
<ul class="pagination justify-content-center">
<li class="page-item">
<a class="page-link" asp-page-handler="filter" asp-route-id="1">1</a>
</li>
</ul>
</nav>
</form>
不在后端觸發 OnPostFilter 方法?
public void OnGet()
{
ProdGoal = 15000;
FillChart();
}
public void OnPostFilter(string id)
{
int MonthNum;
if (int.TryParse(id, out MonthNum) && MonthNum >= 1 && MonthNum <= 12)
FillChart(MonthNum);
else
FillChart();
}
它總是觸發 OnGet()。但是當我將標簽移到它前面時會起作用。這是為什么?我應該如何制作火Post方法。
uj5u.com熱心網友回復:
這是因為單擊時請求方法是 get <a asp-page-handler="filter" asp-route-id="1">1</a>,因此您無法轉到 post handler。
1.您可以嘗試將處理程式名稱更改為OnGetFilter:
public void OnGetFilter(string id)
{
int MonthNum;
if (int.TryParse(id, out MonthNum) && MonthNum >= 1 && MonthNum <= 12)
FillChart(MonthNum);
else
FillChart();
}
2.如果您不想更改處理程式名稱,請嘗試更改您的html:
<form method="post" asp-page-handler="filter" asp-route-id="1">
<nav>
<ul class="pagination justify-content-center">
<li class="page-item">
<input type="submit" value="1"/>
</li>
</ul>
</nav>
</form>
uj5u.com熱心網友回復:
我變了
<input type="submit" value="1"/>
為了
<button ... />
現在它可以作業了,但我仍然不知道為什么輸入會觸發 OnGet()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/323954.html
