Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何将客户端单击事件添加到ASP.NET Core 2.2 Razor页面中的div to call方法_Asp.net Core_Razor 2 - Fatal编程技术网

Asp.net core 如何将客户端单击事件添加到ASP.NET Core 2.2 Razor页面中的div to call方法

Asp.net core 如何将客户端单击事件添加到ASP.NET Core 2.2 Razor页面中的div to call方法,asp.net-core,razor-2,Asp.net Core,Razor 2,我在Razor页面中创建了一个日历,我想让每个日期(一个div)都可以单击,这样他们就可以调用一个方法并将单击的日期(div id设置为date)传递给它。我正在cs页面中生成日历,并且没有使用MVC控制器 @model Budget.Pages.CalendarModel @{ ViewData["Title"] = "Calendar"; } <form method="post"> @Html.Raw(Model.getCal()) </form>

我在Razor页面中创建了一个日历,我想让每个日期(一个div)都可以单击,这样他们就可以调用一个方法并将单击的日期(div id设置为date)传递给它。我正在cs页面中生成日历,并且没有使用MVC控制器

@model Budget.Pages.CalendarModel
@{
    ViewData["Title"] = "Calendar";
}
<form method="post">
    @Html.Raw(Model.getCal())
</form>
@model Budget.Pages.CalendarModel
@{
ViewData[“标题”]=“日历”;
}
@Html.Raw(Model.getCal())
然后在我的cs页面中,我有一个getCal()方法,它通过div、css和一些数学生成一个日历,这很好,但是我需要将onClick事件附加到每一天(div)

公共字符串getCal()
{
//为了简化这个问题,我不会打印出所有的日历生成代码。
//下面的代码发生在一个循环中,其中MM、DD和YYYY会根据需要进行更改
//这是我想要放置onclick事件以调用另一个方法onDateSelect(This.id)的地方
retValue+=“”+
斯特代诺+
"";
返回retValue;//当然,当超出循环时
}

在页面中使用
@Html.Raw(Model.getCal())
呈现内容后,您可以在div上添加click事件:

@section Scripts{ 

    <script>
        $(document).on('click', ".dayCell", function () {


        });

    </script>

}
还要配置反伪造服务以查找
X-CSRF-TOKEN
标题:

services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");

所以,
?是的。通常我会调用javascript函数,然后让AJAX在代码隐藏页面中调用web方法,但我不确定这对Razor页面是如何工作的。
@section Scripts{ 

    <script>
        $(document).on('click', ".dayCell", function () {

            $.ajax({
                type: "POST",
                url: "/YourPageName?handler=Send",
                beforeSend: function (xhr) {
                    xhr.setRequestHeader("XSRF-TOKEN",
                        $('input:hidden[name="__RequestVerificationToken"]').val());
                },
                data: JSON.stringify({
                    ID: this.id

                }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {

                },
                failure: function (response) {
                    alert(response);
                }
            });
        });



    </script>

}
public JsonResult OnPostSend([FromBody]PostData value)
{
    ....
}
public class PostData
{
    public string ID { get; set; }
}
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");