Web API控制器未收到POST请求

时间:2019-05-22 20:09:20

标签: c# angular http asp.net-web-api asp.net-core

尝试将一些表单数据发送到我的WebApi控制器,其中有两个。 FormController和SearchController。但是,当我将数据发送到FormController时,什么也没发生,听起来像是路由问题。如果是这样,我该怎么办?

我尝试阅读有关设置路线的信息,但对于约定却很困惑。

这是表单控制器

[Route("api/submitForm")]
    [ApiController]

    public class FormController : ControllerBase
    {
        [HttpPost]
        public void Post([FromBody] Form formData)
        {
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine(formData);
        }
    }

这是搜索控制器

[Route("api/search")]
    [ApiController]
    public class SearchController : ControllerBase
    {
        [HttpGet]
        public IEnumerable<SearchResult> Get(string q)
        {
            IEnumerable<SearchResult> results = Startup.engine.search(q.Split(" "));
            return results;
        }
    }

从角度发送数据

export class SendFormService
{
    submitUrl : string = "https://localhost:5001/api/submitForm";

    constructor(private http : HttpClient){ }

    public SendFormData(formData : RoadmapForm) : Observable<RoadmapForm>
    {
        //remember to error handle
        return this.http.post<RoadmapForm>(this.submitUrl, formData, httpOptions);

    }
}

FormData字段

export interface RoadmapForm 
{
    title : string;
    summary : string;
    body : string;
    tags : string[];
}

调用SendFormData的代码

    onSubmit()
    {
       const formData : RoadmapForm = {
         title:'', summary: '', body: '', tags: []
       } 

      formData.title = this.editorForm.get('titleEditor').value,
      formData.summary = this.summaryEditorComp.myckeditor.instance.getData(),
      formData.body = this.bodyEditorComp.myckeditor.instance.getData(),
      formData.tags = this.editorForm.get('tagEditor').value.split(' ')

       this.sendFormService.SendFormData(formData);
    }

我希望数据被路由到FormController并将其打印到控制台,但这没有发生。

谢谢。

0 个答案:

没有答案