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;
}
}