Javascript 数组发送到 asp.net MVC Controller

标签 javascript jquery asp.net asp.net-mvc asp.net-mvc-4

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

 mvcPolygon: new google.maps.MVCArray(),

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

最佳答案

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

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

  2. 您可以使用 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/

相关文章:

javascript - 从父 ajax 调用问题引用的数据

jQuery插件开发: how to use chainability right?

javascript - 如果从不同的表单调用按钮,为什么 Ng Repeat 不起作用?

c# - 自定义 "No http resource was found that matches the request uri"消息

ios - 如何在 AFMultipartFormData AFNetworking 3 中发送参数中的键

javascript - 如何向此 getJson 添加 setinterval

javascript - Jasmine - 为什么 spec 失败(与初始化、before 语句等相关)

javascript - 页面上jquery元素加载效果

javascript - JQuery UI 对话框不显示

javascript - 当用户使用不同帐户打开新选项卡时,强制刷新旧选项卡中的站点