gpt4 book ai didi

c# - 在与请求匹配的 Controller 上未找到任何操作

转载 作者:行者123 更新时间:2023-11-30 16:54:07 25 4
gpt4 key购买 nike

抱歉这个蹩脚的问题。我已经阅读了所有类似的问题,但仍然无法解决我的问题。

从 ajax 调用时出现“在 Controller 上找不到与请求匹配的操作”错误:

$.ajax({
url: '/api/ToyEdit/Post/',
dataType: "json",
type: "POST",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({toyId: 1, toy: 'asd'}),
async: true,
processData: false,
cache: false,
success: function (data) {
alert(data);
},
error: function (xhr) {
alert(xhr.statusText);
}
})

Controller :

public class ToyEditController : ApiController
{
[System.Web.Mvc.HttpGet]
public EditToyViewModel Get(int? toyId)
{
var model = new EditToyViewModel();

if (toyId.HasValue)
{
model.Toy = Data.GetToy(toyId.Value);
}

model.Companies = Data.GetCompanies().ToList();

return model;
}

[System.Web.Mvc.HttpPost]
[System.Web.Mvc.ActionName("Post")]
public ActionResult Post(int? toyId, string toy)
{
var a = toy;
/*new Task<int>(() => DB.Context.Toys.FirstAsync().Id);*/

return new EmptyResult();
}
}

路由:

        routes.MapRoute(
name: "WebApi",
url: "api/{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

代码有什么问题?

更新 1:

好的,当我使用下一个代码时它可以工作:

public class Toy
{
public int? toyId {get; set;}
public string toy {get; set;}
}

[System.Web.Mvc.HttpPost]
[System.Web.Mvc.ActionName("Post")]
public ActionResult Post(Toy toy)
{
// your necessary codes
}

但是如何传递一些原始变量呢?

最佳答案

尝试如下:首先,创建Toy

public class Toy
{
public int? toyId {get; set;}
public string toy {get; set;}
}

然后按如下方式使用它......

[System.Web.Mvc.HttpPost]
[System.Web.Mvc.ActionName("Post")]
public ActionResult Post(Toy toy)
{
// your necessary codes
}

可以看看here更多信息...

关于c# - 在与请求匹配的 Controller 上未找到任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30831909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com