我有一个.NETCore 2.1 Web应用程序和一个单独的Razor类库。
RCL包含一些我打算在单独的项目中使用的共同的局部视图和功能。
我正在尝试向如下所示的控制器发布AJAX帖子:
using Microsoft.AspNetCore.Mvc;
namespace ThinkkaGlobal
{
[ApiController]
public class LoginController : Controller
{
[HttpPost("thinkka/login")]
public ActionResult DoLogin([FromBody] ThinkkaUsers.Requests.LoginRequest Req)
{
return PartialView("Login", Req);
}
}
}
注意属性路由...这不一定是我想要的,但是我已经花了[[hours来尝试使它起作用,因为我尝试了许多不同的路由选项。我的app.UseMvcWithDefaultRoute();
文件中也有Startup.cs
。
jquery-unobtrusive-ajax
来做到这一点,这就是我的开始方式,但是后来我开始直接使用jQuery AJAX因此我可以再多加一点。所以,非常基本的AJAX ...
$.ajax({
url: "thinkka/login",
type: 'post',
contentType: "application/json", // (application/x-www-form-urlencoded; charset=UTF-8)
dataType: 'json',
success: function (data) {
console.log(data);
},
data: { email: "[email protected]" }
});
仅作简单说明,POSTed对象是一个简单的对象,如下所示:
class LoginRequest { public string email { get; set; } public string password { get; set; } public bool remember { get; set; } public int location { get; set; } public string userpass { get; set; } }
当我使用contentTypeapplication/x-www-form-urlencoded; charset=UTF-8
发布时,我得到了Error 415 - Unsupported Media Type
[当我使用contentType
application.json
发布时,我得到了Error 404 - Not Found
[几个小时我刚收到404,但是我认为那时我确实使用了错误的路由。我使用
thinkka/login/DoLogin
作为URL,即包括所调用的方法名,但是路由属性将其覆盖,因此在所有时间里,我都在浪费时间尝试使之起作用,我认为我使用的是错误的URL!] >但是...现在...我至少可以得到不同的错误代码的事实表明URL正确吗?
但是我不知道为什么我仍然会得到使用
application/json
的404,尽管实际上application/x-www-form-urlencoded; charset=UTF-8
是正确的contentType...。不是吗。]]我不知道。。。已经很晚了,我已经这样做了好几个小时了,这不再有意义了!
一如既往,任何帮助将不胜感激!
我有一个.NETCore 2.1 Web应用程序和一个单独的Razor类库。 RCL包含一些我打算在单独的项目中使用的共同的局部视图和功能。我正在尝试制作一个...
首先要正确返回我最终想要的Partial
,我如下更改了Controller类