asp.net-mvc – 使用[HttpPost]修饰时,ASP MVC控制器操作’404 n
我有一个控制器动作方法,它看起来像这样:
public ActionResult testMethod(int id) { //do something... //return something... return View(); } 但是当我指定它应该是一个“Post”方法时,我得到一个’404 not found error’: [HttpPost] public ActionResult testMethod(int id) { //do something... //return something... return View(); } 我在同一个控制器中有其他控制器动作方法 – POST和GET,它们工作正常.但这一个不?这是怎么回事? (我确定我在这里遗漏了一些明显的东西…) 更新: $.ajax({ url: '/indices/testMethod/',data: id,type: 'POST',success: function (data) { //Do something } }); 我也尝试用Postman测试方法,确保发送POST请求. 更新2: 在Fiddler中,我可以看到实际上正在进行GET请求,即使我在ajax调用中指定了POST请求,所以现在我需要找出为什么请求最终作为GET而不是POST发送. 我也尝试过包含属性路由描述,就像这样 [HttpPost] [Route("indices/TestMethod/{id:int}")] public ActionResult TestMethod(int id) 然后用不同的url尝试了ajax调用: $.ajax({ url: '/indices/TestMethod/1',success: function (data) { var tr = 123; var yr = data; //Do something } }); 使用属性路由和URL中的参数值,我在Fiddler中看到首先发生POST请求,它获得301状态错误,但随后也发出GET请求,这会得到404错误. 更新3: 此问题似乎是由此项目处于活动状态的内容安全策略设置引起的. 解决方法
尝试将param1更改为id并查看它是否有效.这可能听起来很愚蠢,但实际上我在自己面前遇到了问题并解决了这个问题.
我能想到的另一个问题是,在你的app中,testMethod的路径是带有大写字符的/ Indices / TestMethod.当你请求/ indices / testMethod /时,可能会发生一些导致GET请求的重定向. 尝试更改ajax调用中的url或尝试添加[Route()]属性以设置路由名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.Net MVC 5 w /身份2.2.0注销不工作
- 在asp.net C#中读取表单变量的问题
- asp.net-mvc-5 – ASP.NET MVC 5 Identity 2 PasswordSignI
- asp.net-core – 是否可以在ASP.NET Core中使用自定义Model
- asp.net-mvc – MVC ModelMetaData属性和格式化Date的问题
- asp.net – 比较Razor vs ASPX语法
- asp.net-mvc-2 – 是asp.net MVC2包括在.net 4.0框架?
- asp.net-mvc-3 – 我可以在App_Code之外使用全局剃须刀@hel
- asp-classic – 哪里可以存储经典ASP的连接字符串?
- 获取在ASP.NET Core 2.0中具有特定角色的所有用户
- asp.net-mvc – 在我的asp.net MVC解决方案中保持
- .net – 如何在同一个域但不同的主机上共享本地存
- asp.net-mvc-4 – 后退点击刷新页面 – MVC 4
- asp.net-mvc-3 – 需要帮助区分WebMatrix,ASP.NE
- ASP.NET 2.0或3.5?
- asp.net-mvc – 无法更新数据库以匹配当前模型,因
- asp.net-mvc – 将角色添加到ADFS IPrincipal
- ASP.Net表单身份验证 – 在超时时转到登录页面
- asp.net-mvc – 密码保护整个.net mvc应用程序?
- asp.net-mvc – asp.net mvc:如何模拟Url.Conte