返回

c#-.Net Core 直接从 HTML 调用 OnPost

发布时间:2022-07-31 11:35:21 253
# flask

回发调用方法“OnPostSetPage”并传递参数的最佳方法是什么。"onclick="setPage('1')" 对我不起作用。我尝试创建查询代码会拦截 onclick 事件并完成回发到 OnPostSetPage。但是,当成功这样做时,它实例化了一个新类,我丢失了我希望使用的模型的上下文。我需要调用 OnPostSetPage,传入一个参数并访问“公共类 IndexModel”之外的现有模型属性。使用 MVC,我可能会使用“@Html.ActionLink”或“asp -controller & asp-action”,但这不是 MVC 应用程序。这是 Index.cshtml 和 Index.cshtml.cs 与 OnGet、OnPost 等方法的命名约定的组合(这对我来说是全新的)。

<div class="row mt-3">

    <div class="col">

        <ul class="pagination justify-content-center">

            <li class="page-item @(Model.pager.currentPage == 1 ? "disabled" : null)">

                <a class="page-link cursor-pointer" onclick="setPage('1')">First</a>

            </li>

            <li class="page-item @(Model.pager.currentPage == 1 ? "disabled" : null)">

                <a class="page-link cursor-pointer" onclick="setPage('@(Model.pager.currentPage - 1)')">Previous</a>

            </li>

            @for (int i = 1; i <= Model.pager.totalPages; i++)

            {

                if (i > 5) break;

                isDisabled = (i == @Model.pager.currentPage) ? true : false;

 

                <li class="page-item @(Model.pager.currentPage == @i ? "active" : null)">

                    <a class="page-link cursor-pointer" onclick="setPage('@i')">@i</a>

                </li>                    

            }

            <li class="page-item @(Model.pager.currentPage == @Model.pager.totalPages ? "disabled" : null)">

                <a class="page-link cursor-pointer" onclick="setPage('@(Model.pager.currentPage + 1)');">Next</a>

            </li>

            <li class="page-item @(Model.pager.currentPage == @Model.pager.totalPages ? "disabled" : null)">

                <a class="page-link cursor-pointer" onclick="setPage('@Model.pager.totalPages');">Last</a>

            </li>

        </ul>

    </div>

</div>

public IActionResult OnPostSetPage(int page = 1)

{

    // Do Stuff here

    return RedirectToPage("Index");

}

更新 我可以得到一个回发处理程序来为一个按钮工作,只是还不是一个href。注意:必须将参数 page 更改为 pageNum 才能解决保留字问题。

<form method="post">

    <p>Testing Buttons</p>

    <button type="submit" class="btn btn-success btn-sm show-report-spinner" asp-page-handler="SetPage" asp-route-pageNum="1">SetPage #1</button>

</form>

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像