ASP.NET Core Razor Pages按钮无效

时间:2018-03-10 16:45:38

标签: asp.net razor-pages

我有一个ASP.NET Core Razor pPages项目。我可能会使用按钮为我编写脚本。

我有这个HTML标记:

<body>
    <div id="container"></div>
    <div id="progress" style="display:none">
        <h4>Loading...</h4>
    </div>
</body>

这个脚本:

function GetData() {
        $.ajax({
            type: 'GET',
            url: './Index?handler=ListOfPhoto',
            data: { "pageindex": pageIndex, "pagesize": pageSize },
            dataType: 'json',
            success: function (data) {
                if (data != null) {
                    for (var i = 0; i < data.length; i++) {
                        var row = data[i];                        

                        var html = '<img src="/Photos/' + row.idUser + '/' + row.imageName + '" class="img-responsive" />';
                        html += '<h2>' + row.name + '</h2>';

                        html += '<form method="POST"> <button type="submit" asp-route-data="foo" asp-page-handler="Way">Way</button> </form>';

                        $("#container").append(html);

                    }
                    pageIndex++;
                }
            },
            beforeSend: function () {
                $("#progress").show();
            },
            complete: function () {
                $("#progress").hide();
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
            }
        });

但是这个按钮不起作用:

html += '<form method="POST"> <button type="submit" asp-route-data="foo" asp-page-handler="Way">Way</button> </form>';

处理程序方法:

public void OnPostWay(string data)
{                
}

有没有人有任何想法,为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

你的问题是你尝试追加不是html的html,但它是一个标签助手。该框架将采用asp-route-data和asp-page-handler来生成按钮的形成。

在您的示例中,您必须自己生成编码,因此您必须使用以下代码替换您的按钮。

html += '<form method="POST"> <button type="submit" formaction="/YourPageName?data=foo&amp;handler=Way">Way</button> </form>';