我在MVC应用程序中通过ajax发布时遇到了问题。我想发布一个字符串,但在控制器中我得到空。我发现了许多类似的问题,但仍然找不到解决方案。 我的控制器:
[HttpPost]
public async Task<ActionResult> AddCompany(string data)
{
Company company = new Company { Name = data };
await _context.Companies.AddAsync(company);
await _context.SaveChangesAsync();
return Json(new { success = true });
}
和 ajax 代码:
$.ajax({
url: '/api/companyApi/',
type: 'POST',
data: {
data: JSON.stringify("abc")
},
dataType: 'json',
success: function() {
alert("The company added");
},
error: function () {
alert('Error! Please try again.');
}
});
您正在尝试使用/api/companyApi/
路径。为了使它使用默认路由工作,您需要进行适当的Route
修饰。
控制器:
[Route("api")] //---> here is the change
public class YourControllerNameController
行动:
[HttpPost]
[Route("companyApi")] //---> here is the change
public async Task<ActionResult> AddCompany(string data)
{
Company company = new Company { Name = data };
await _context.Companies.AddAsync(company);
await _context.SaveChangesAsync();
return Json(new { success = true });
}