你好我有一个尝试使用的注册方法,这实际上是一个POST但返回一个Get。这发生在生产服务器上。
[RoutePrefix("register')]
public class RegisterController : ApiController
{
private UserRepository userRepository;
public RegisterController()
{
userRepository = new UserRepository();
}
[AllowAnonymous]
[Route("")]
public async Task<IHttpActionResult> Register(Users user)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
IdentityResult result = await userRepository.RegisterUser(user);
IHttpActionResult error = GetError(result);
if(error != null)
{
return error;
}
return Ok();
}
答案 0 :(得分:0)
您必须更新您的Register方法以允许发布电话。
见下文。
[AllowAnonymous]
[Route("register")]
[HttpPost]
public async Task<IHttpActionResult> Register(Users user)
{
//Your code
}
答案 1 :(得分:0)
之前我遇到过这个问题(405:方法不允许),删除WebDav发布功能解决了这个问题。您可以转到添加/删除功能,在IIS下,尝试删除Web Dav发布。以下是从Windows 10控制台拍摄的屏幕截图(可能因服务器操作系统而异)
是的,我相信[HttpPost]注释是必需的。
答案 2 :(得分:0)
在您的控制器中,您将有两个注册方法,一个使用get注释返回视图,另一个使用post注释创建或注册用户自己。我创建了一个新项目,我可以如下
[AllowAnonymous]
public ActionResult Register()
{
return View();
}
//
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
// a lot goes in here
}
return View(model);
}