首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Asp.net MVC实体框架路径不适用于- WebAPI控制器类。

Asp.net MVC实体框架路径不适用于- WebAPI控制器类。
EN

Stack Overflow用户
提问于 2021-01-18 11:34:20
回答 1查看 75关注 0票数 0

文件名: DemoController.cs

代码语言:javascript
运行
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace MVCEntityFramework.Controllers.Api
{
    public class DemoController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<controller>/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<controller>
        public void Post([FromBody] string value)
        {
        }

        // PUT api/<controller>/5
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/<controller>/5
        public void Delete(int id)
        {
        }
    }
}

ScreenShot 1:https://i.stack.imgur.com/lDQ4O.png ScreenShot 2:https://i.stack.imgur.com/ObG6W.png

路径不起作用:

  1. https://localhost:44310/api/demo/get/2
  2. https://localhost:44310/api/democontroller/get/2

响应:

HTTP错误404.0 -找不到您要查找的资源已被删除,其名称已更改,或暂时不可用。

EN

回答 1

Stack Overflow用户

发布于 2021-01-18 11:42:33

它按惯例工作,所以如果您需要调用Get,只需使用https://localhost:44310/api/demo/2而不使用动作名称,但是您需要指定动词HttpGet,如果您需要调用Post,也可以使用指定动词HttpPost调用https://localhost:44310/api/demo --例如,如何使用postman调用post动作

或向类中添加[Route(“控制器”)]属性,如

代码语言:javascript
运行
复制
[Route("[controller]")]
public class DemoController : ApiController
{
    // GET api/<controller>
    [Route("Get")]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }
}

因此,在本例中,可以向端点添加控制器名称,如https://localhost:44310/api/demo/get/2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65773764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档