我遇到此错误zone.js:3243 POST https://localhost:44424/api/SlgCorpNotes/Edit 405(不允许使用方法)
这是我的服务api调用
updateMessage(message: any) {
console.log("at service")
console.log(message)
return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', message)
}
我在console.log消息中收到此消息。
Object
departments: 4
noteBody: "asdf"
weeks: SLGTime {year: 2020, week: 12, quarter: 1, weekEnding: "2020-01-18T00:00:00", lyweekEnding: "2019-01-19T00:00:00"}
__proto__: Object
所以我知道我正在向后端的.net控制器发送信息。这是我的控制器方法。可能不是为了正确接收角度信息而设置的?
[HttpPost]
[Route("api/SlgCorpNotes/Edit")]
public void Edit([FromBody]object item)
{
_SLGContext.Entry(item).State = EntityState.Modified;
_SLGContext.SaveChanges();
}
更多有用的信息。这是我的名称空间和Route的名称
namespace mocHub2.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class SlgCorpNotesController : Controller
这是我要发送的表单组信息。
this.optionsForm = new FormGroup({
departments: new FormControl(),
weeks: new FormControl(),
noteBody: new FormControl()
})
我认为这是即时通讯没有正确命名。抱歉,这是我的第一个.net / angular项目。通常我只是在剃刀视图和.net mvc上!
答案 0 :(得分:1)
尝试将其作为JSON发送,
return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', JSON.stringify(message));
并且您的方法主体应具有类型的对象
public void Edit([FromBody]TypeOfObject item)
答案 1 :(得分:0)
我手动创建了一个对象。新消息。
我还必须放置HttpHeaders
const headers = new HttpHeaders()
.set('Content-Type', 'application/json;charset=UTF-8')
let options = { headers: headers };
这是更新的方法。
updateMessage(message: any) {
console.log("at service")
console.log(message)
//var newMessage = new CorpNotes(message['departments'], message['noteBody'], message['weeks'].weekEnding)
//console.log(newMessage)
//console.log(JSON.stringify(newMessage))
var newMessage = {
"Departments": message["departments"],
"Note": message["noteBody"],
"WeekEnding": message["weeks"].weekEnding
}
console.log(newMessage)
const headers = new HttpHeaders()
.set('Content-Type', 'application/json;charset=UTF-8')
let options = { headers: headers };
return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit',newMessage, options);
//return this.http.post(this.baseUrl + 'api/SlgCorpNotes/Edit', JSON.stringify(newMessage))
}