0

我目前正在尝试开发一个网络应用程序,其中用户在谷歌地图上定义一组带有坐标的点,这些点存储在这样的数组中:

 mvcPolygon: new google.maps.MVCArray(),

现在我需要用户名、密码等并将其提交给服务器。我对 javascript 和前端开发很陌生,所以我对要走的路一无所知。所以目前我有存储坐标的javascript代码,我需要的是当用户完成定义他的多边形,并用用户名、密码、电子邮件等填写表格时,所有这些信息都会尽快发送到控制器当用户点击提交按钮时。该网络应用程序目前正在 ASP.NET MVC 5 和 c# 上开发,任何帮助将不胜感激!

4

2 回答 2

3

基本上有两种方法可以将数据返回到服务器:

  1. 您可以将数据放入表单元素并将该表单发布到设置为接收它的操作。这将要求您将您的用户名、密码等放入一系列带有名称属性的 html 元素中,这些元素的名称属性设置为遵循 MVC 的约定(此页面有一些关于要使用的约定的信息)。

  2. 您可以使用 jQuery 的 ajax 功能将包含您的数据的原始 javascript 对象发送到 MVC 操作(有关如何完成此操作的详细信息,请参见此答案及其链接帖子)。

在任何一种情况下,您可能都不应该在每次请求时都向服务器发送用户名和密码,因为一旦用户登录到您的应用程序,您就可以使用身份验证 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) {
        ...
    }
}
于 2013-09-17T01:08:43.260 回答
1

您可以使用下面的 java 脚本方法来定义 JavaScript 数组

<script type="text/javascript">
 var array = [];
    array.push(10);
    array.push(20);
</script>

您使用此数组在数组中插入点并使用以下 Ajax 调用发送此数组

 var _data = {
            'array ': array 
        };
$.Post(url ,_data, function(data){
})
于 2015-07-09T13:22:44.403 回答