C# 在ASP.NET Core中发布没有表单的数据

C# 在ASP.NET Core中发布没有表单的数据,c#,asp.net-core,C#,Asp.net Core,我想让一个按钮做一个简单的帖子,以便启动后端控制器中的一些工作: <button type="button" asp-action="DoIt">Do it<button> 去做吧 [HttpPost] 公共异步任务DoIt() { } 我可以在ASP.NET Core中执行此操作而不使用表单吗 我知道我可以做这样的事情: <button onClick="$.post('/MyController/DoIt');" type="button">DoIt

我想让一个按钮做一个简单的帖子,以便启动后端控制器中的一些工作:

<button type="button" asp-action="DoIt">Do it<button>
去做吧
[HttpPost]
公共异步任务DoIt()
{
}
我可以在ASP.NET Core中执行此操作而不使用表单吗

我知道我可以做这样的事情:

<button onClick="$.post('/MyController/DoIt');" type="button">DoIt</button>
DoIt
但如果能有类似的事情发生,那就太酷了:

<button asp-controller="DoIt" asp-method="POST" type="button">DoIt</button>
DoIt

理想情况下,ValidateAntiForgeryToken也将得到支持…

您希望从javascript进行ajax调用

例如

fetch("URL", {
    method: "POST",          // HTTP Method
    body: JSON.stringify({}) // Data to send
});


谢谢,但我已经提到我可以用onClick和ajax简单地做到这一点。谢谢,但我已经提到我可以用onClick和ajax简单地做到这一点。不,你不能。Post with a form是HTTP标准,而不是asp.net核心标准,因此只能使用ajax或Post with a form。
fetch("URL", {
    method: "POST",          // HTTP Method
    body: JSON.stringify({}) // Data to send
});

$.ajax({
    url: "",                 // URL to post to
    method: "POST",          // HTTP Method
    data: JSON.stringify({}) // Data to send
});
 HTML
------
    @Html.Hidden("cancelOrder", Url.Action("MethodName", "ControllerName")) 


    AJAX Call
   ---------- 
    $.ajax({
            url: $("#cancelOrder").val(),
            type: "POST",
            data: { ID: Id},
            success: function (_result) {
                //Success
            }
        });



    Method
    ------
    public JsonResult MethodName()
            {
    bool _status = true;
                try
                {                
                    return Json(_status, JsonRequestBehavior.AllowGet);
                }
                catch
                {
                    throw;
                }
            }