如何在 MVC 控制器中通过 WebApi 从 HTML 页面发布数据
Posted
技术标签:
【中文标题】如何在 MVC 控制器中通过 WebApi 从 HTML 页面发布数据【英文标题】:How to POST Data from HTML Page via WebApi in MVC Controller 【发布时间】:2020-02-24 18:10:39 【问题描述】:用于从 html 中获取输入数据的函数
function saveclickdata()
var allData =
InvNo:document.getElementById('TbInvNo').value,
GrossSale:document.getElementById('TbOrderTotal').value,
discount:document.getElementById('TbDiscount').value,
CusCash:document.getElementById('TbCash').value,
CusBal:document.getElementById('TbBalance').value,
;
$.ajax(
url: "\Controllers\POSController.cs\SaveData",
type: 'POST',
data: allData,
success: function (res)
alert("success");
,
error: function (err)
alet("Error");
);
控制器中用于发布数据的 API
[HttpPost]
JsonResult SaveData(POSMater collection)
if (collection.InvNo.ToString() == null)
var LocalInvNo = (from b in db.TblPOSMasters select b).FirstOrDefault();
int MaxInvNo = Convert.ToInt32(LocalInvNo) + 1;
collection.InvNo = MaxInvNo;
TblPOSMaster master = new TblPOSMaster();
master.InvNo = collection.InvNo;
master.AddBy = 1;
master.AddDate = DateTime.Now;
master.CashStatus = "A";
master.CompId = 1;
//master.CreditAmt = collection.CreditAmt;
//master.CrCardNo = collection.CrCardNo;
master.CusCash = collection.CusCash;
master.CusId = 1;
master.GrossSale = collection.GrossSale;
db.TblPOSMasters.Add(master);
db.SaveChanges();
else
return Json(collection);
return Json(collection);
我该怎么办?我的 html 按钮工作正常但仍然无法调用 api
【问题讨论】:
您是故意省略了 URL 还是试图发布到 " url: "\Controllers\POSController.cs\SaveData"? 网址好像不对,应该是 \Controllers\POS\SaveData 吗?我建议使用 MVC 助手来获取 url。 尝试在你的ajax调用中使用url: '@Url.Action("SaveData", "POS")'
@JamieD77 兄弟它不工作,我也试过 \Contollers\POS\SaveData 它也不工作
url 应该是 ControllerName\ActionName 所以这里:POS\SaveData
【参考方案1】:
我认为你应该在你的 URL 中使用正斜杠 (/
)
【讨论】:
以上是关于如何在 MVC 控制器中通过 WebApi 从 HTML 页面发布数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Steam WebAPI 中通过 AppName 获取 Steam AppID
在 ASP.NET MVC 中通过 JQuery AJAX 上传文件
如何在 Asp.net MVC 中添加 Web Api,然后在同一个应用程序中使用 WebAPI