Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未找到与请求URI';匹配的HTTP资源;Myurl';在控制器上未找到任何操作';控制器名称';这与请求相符_C#_Asp.net Mvc_Asp.net Mvc 4_Asp.net Web Api - Fatal编程技术网

C# 未找到与请求URI';匹配的HTTP资源;Myurl';在控制器上未找到任何操作';控制器名称';这与请求相符

C# 未找到与请求URI';匹配的HTTP资源;Myurl';在控制器上未找到任何操作';控制器名称';这与请求相符,c#,asp.net-mvc,asp.net-mvc-4,asp.net-web-api,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Web Api,Webapi方法在RestConsole中运行良好,但在AndroidApplication中调用该Webapi方法时会显示错误 { “消息”:“未找到与请求URI“”匹配的HTTP资源。” “MessageDetail”:“在控制器‘apiCityInfo’上未找到与请求匹配的操作。” } 甚至我也试着将我的控制器名称从CityInfo更改为apiCityInfo,并通过 谷歌的许多例子中都提到了各种路由技巧 我还尝试将Actionname与下面控制器中提到的httppost动词放在一起 我的

Webapi方法在RestConsole中运行良好,但在AndroidApplication中调用该Webapi方法时会显示错误

{ “消息”:“未找到与请求URI“”匹配的HTTP资源。”

“MessageDetail”:“在控制器‘apiCityInfo’上未找到与请求匹配的操作。” }

甚至我也试着将我的控制器名称从CityInfo更改为apiCityInfo,并通过 谷歌的许多例子中都提到了各种路由技巧

我还尝试将Actionname与下面控制器中提到的httppost动词放在一起

我的控制器代码是

public class apiCityInfoController : ApiController
{
    private DBContext db = new DBContext();
     [HttpPost, ActionName("PostSearchByCategory")]
    public IHttpActionResult PostSearchByCategory(string CategoryName)
    {
        var errorMessage = "";
        int errorCode = 0;
        //string json = null;
        string jsonResult = "Error";
        var SubCategory = db.CityDatas.Where(x => x.CategoryName.Equals(CategoryName)).ToList().FirstOrDefault().SubCategoryName; 

        try
        {

            if (SubCategory !=null)
            {
                //errorMessage = " Login ID cannot be Null ";
                //errorCode = 1;
                var SubCategoryresult = (from p in db.CityDatas
                              where p.CategoryName.Equals(CategoryName)
                              select new
                              {

                                  SubCategoryName = p.SubCategoryName,


                              }
                   ).ToList();
                var data = new
                {
                    Result = new
                    {
                        //ErrorCode = errorCode,
                        //ErrorMessage = errorMessage,
                        ResultSet = SubCategoryresult,

                    }
                };
                return Json(data);

            }
            else
            {
                var Dataresult = (from p in db.CityDatas
                                         where p.CategoryName.Equals(CategoryName)
                                         select new
                                         {
                                             DataImage = p.DataImage,
                                             DataName = p.DataName,
                                             DataAddress = p.DataAddress,
                                             DataPhoneNo = p.DataPhoneNo,                                                
                                         }
                 ).ToList();
                    var data = new
                    {
                        Result = new
                        {
                            ResultSet = Dataresult,


                        }
                    };

                    //jsonResult = JsonConvert.SerializeObject(data);
                    return Json(data);

            }
        }
        catch (Exception e)
        {
            errorCode = 401;
            errorMessage = e.Message;
            var data = new
            {
                Result = new
                {
                    ErrorCode = errorCode,
                    ErrorMessage = "CategoryName Not Exists",

                }
            };

            jsonResult = JsonConvert.SerializeObject(data);
        }

        return Ok(jsonResult);
    }
模型部分是

[Table("CityInfo")] 
public class CityData
{
    //[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    [Key]
    public int CityInfo_Id { get; set; }
    public String CategoryName { get; set; }
    public String SubCategoryName { get; set; }
    public String DataImage { get; set; }
    public String DataName { get; set; }
    public String DataAddress { get; set; }
    public String DataPhoneNo { get; set; }
}
模型中的DBContext

public class DBContext : DbContext
{

    public DBContext()
        : base("name=DefaultConnection")
    {
    }

    public DbSet<WebApi.Models.CityData> CityDatas { get; set; }

}
))

WebApi Config.cs文件为

 public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.MapHttpAttributeRoutes();


        config.Routes.MapHttpRoute(
            //name: "DefaultApi",
            //routeTemplate: "api/{controller}/{id}",
            //defaults: new { id = RouteParameter.Optional }
             name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { action = "Post", id = RouteParameter.Optional }
        );
    }
}
 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
路由配置.cs文件为

 public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {

        config.MapHttpAttributeRoutes();


        config.Routes.MapHttpRoute(
            //name: "DefaultApi",
            //routeTemplate: "api/{controller}/{id}",
            //defaults: new { id = RouteParameter.Optional }
             name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { action = "Post", id = RouteParameter.Optional }
        );
    }
}
 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
Global.asx文件不可用

 public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        Database.SetInitializer<DBContext>(null);

    }
}
公共类WebAPI应用程序:System.Web.HttpApplication
{
受保护的无效应用程序\u Start()
{
RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Database.SetInitializer(null);
}
}

我做错了什么?如何修复错误?

参数
CategoryName
是非可选的,因此您需要将其作为参数包含在请求中。URL应该如下所示:
http://beatrootstudios.co.in/api/apiCityInfo/PostSearchByCategory?CategoryName=category
您可能想让这成为一个GET操作,与帖子相反。

感谢Get方法运行良好,没有问题,但当我使用Httppost方法时会出现问题,因此,出于安全原因,u Plz能否帮助我解决Httppost方法bcoz中的问题使用Get方法将不会成为gud实践。。。