如何在不使用表单或网页的情况下在我的 MVC 5 Web 应用程序上注册帐户?

How do I register an account on my MVC 5 Web App without using the form or webpage?

我在 Visual Studio 2015 年使用 ASP.NET Web 应用程序模板创建了一个新项目。然后我选择了 MVC 和个人用户帐户以进一步指定模板。我得到的解决方案是完整的,因为它为我提供了帐户管理(例如注册和登录)所需的所有网页。

但是,现在我想将 Xamarin.Forms 移动客户端连接到此帐户管理方案。我正在制作本机 UI 来注册用户,而不是将他们重定向到网页或 webview。 我想从这里发送用户注册数据,例如用户名和密码UI 到服务器,这样它就会创建一个帐户。这意味着我不想使用我的 MVC 应用程序提供的网页,而是将注册数据发送到服务器并让它创建一个帐户,通知我成功或失败。

我预计我需要使用 HTTP POST 在 AccountController 中登录和注册端点,或者实施 public API。但是,做 post 会 return 一个网页,而我的客户对网页不感兴趣。

我认为上面的其中一个应该可以很容易地实现,但是我很难找到答案或方法,因为我不知道如何正确地表达我的问题,而且有很多关于 MVC 的指南,我所有的结果都是混乱的。

我的想法是否可能存在缺陷,或者我错过了 MVC 的基本概念?为了使这成为可能,我应该采取哪些步骤?

我认为,您可以使用 ASP.NET Web API 来完成此任务。在服务器上,您托管 API 用于注册用户以及登录某些客户端应用程序。

现在,您需要在客户端应用程序中使用此 API。客户端应用程序可以是控制台应用程序、Windows 应用程序或 Web 应用程序。官方 ASP.NET 网站上有很多关于制作 Web API 的教程。

一个误解是 POST 会 return 一个网页。您可以 return 来自 MVC 控制器的任何类型的内容。但是您的帐户注册端点应该是 return JSON 的 Web API 控制器。 JSON 可以简单到包含一个指示操作是否成功的布尔值。

您根本不需要使用 MVC。您可以完全取消模板为您创建的帐户控制器和视图。只需将您需要的代码从 MVC 控制器复制到您的 Web API 方法中。

你说得对,这很容易做到。