我目前正在尝试开发一个网络应用程序,其中用户在谷歌地图上定义一组带有坐标的点,这些点存储在如下数组中:
mvcPolygon: new google.maps.MVCArray(),
现在我需要用户名、密码等并将其提交到服务器。我对 javascript 和前端开发还很陌生,所以我对要走的路一无所知。 所以目前我有存储坐标的javascript代码,我需要的是当用户完成定义他的多边形并用用户名、密码、电子邮件等填写表单时,所有这些信息都会立即发送到 Controller 当用户点击提交按钮时。 该网络应用程序目前正在 ASP.NET MVC 5 和 c# 上开发,任何帮助将不胜感激!
最佳答案
基本上有两种方法可以将数据传回服务器:
您可以将数据放入表单元素中,并将该表单发布到设置为接收数据的操作。这将要求您将用户名、密码等放入一系列 html 元素中,并将名称属性设置为遵循 MVC 的约定(This page 有一些有关要使用的约定的信息)。
您可以使用 jQuery 的 ajax 功能将包含数据的原始 javascript 对象发送到 MVC 操作(有关如何完成此操作的详细信息,请参阅 this answer 及其链接的帖子)。
无论哪种情况,您可能都不应该在每次请求时都向服务器发送用户名和密码,因为一旦用户登录到您的应用程序,您就可以使用身份验证 cookie 来验证用户的身份(有很多在线资源解释了其工作原理)。
对于选项 2:
Javascript:
var myobject = {
username: "Joe",
password: "password",
points: [{ x: 111.1112, y: 22.2222 },{ x: 11.12, y: 21.11 }]
}
jQuery.ajax({
url: "/MyController/MyAction",
contentType: "application/json",
dataType: "json",
data: JSON.stringify(myobject)
})
C#:
public class PointModel
{
public double x { get; set; }
public double y { get; set; }
}
public class MyModel
{
public string username { get; set; }
public string password { get; set; }
public IList<PointModel> points { get; set; }
}
public class MyController : Controller
{
[HttpPost]
public JsonResult MyAction(MyModel model) {
...
}
}
关于Javascript 数组发送到 asp.net MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18839210/