如何将js变量发送到mvc控制器
我是客户端 – 服务器编程概念的新手。 我需要的是,向我的MVC 3控制器动作发送四个js变量。
$(document).ready(function() { var $jcrop; $('#image').Jcrop({ bgColor: 'red', onSelect: refreshData }, function () { $jcrop = this; }); function refreshData(selected) { myData = { x1: selected.x1, x2: selected.x2, y1: selected.y1, y2: selected.y2 }; } });
所以我在浏览器中获取我的变量。
我在服务器端有的是:
public ActionResult CreateCover(ImageCoordinates coordinates) { ViewData.Model = coordinates; return View(); } public class ImageCoordinates { public int x1 { get; set; } public int x2 { get; set; } public int y1 { get; set; } public int y2 { get; set; } }
有没有一种简单的方法可以将我的四个参数从js发布到我的动作中? 我尝试使用$ .ajax从本网站使用几个例子
像这样
$.ajax({ url: '/dashboard/createcover', type: 'POST', data: JSON.stringify(myData), contentType: 'application/json; charset=utf-8', success: function (data) { alert(data.success); }, error: function () { alert("error"); }, async: false });
但它不起作用,我在行动中收到了0 0 0 0。 但说实话,我甚至不确定如何调用这个jquery函数。 我应该通过点击按钮来呼叫它,还是在我发布表单时自动呼叫? 还有其他方法可以发送这个参数吗?
这里解决方案 –
型号 –
public class ImageCoordinates { public int x1 { get; set; } public int x2 { get; set; } public int y1 { get; set; } public int y2 { get; set; } }
行动 –
public ActionResult CreateCover(ImageCoordinates coordinates) { return null; }
让我们创建一个View,它将对Action进行AJAX调用。
输出 –
尝试更改传递给控制器的对象的名称:
$.ajax({ url: '/dashboard/createcover', type: 'POST', data: {coordinates : JSON.stringify(myData)}, //change here contentType: 'application/json; charset=utf-8', success: function (data) { alert(data.success); }, error: function () { alert("error"); }, async: false });
请注意,这会将值作为JSON对象发布。 您需要像这样修改控制器:
public ActionResult CreateCover(string jsonCoordinates) { ImageCoordinates coordinates = JsonConvert.DeserializeObject(jsonCoordinates); ViewData.Model = coordinates; return View(); }
您还需要添加对Newtonsoft.Json
的引用。
- 如何使用MVC中的ajax从服务器重新初始化dataTables
- jquery stopPropagation停止了ajax get
- 如何将在texbox中输入的值传递给PartialViewResult?
- 如何在jQuery Accordion上执行以下ajax请求?
- 这是一个有效的jquery回调函数调用吗?
- 使用JQuery的MVC:处理会话过期
- 在一个页面中以两种不同的forms使用多个@ Html.AntiForgeryToken()是否可能/正确?
- 如何通过Visual Studio中的Nuget获取最新的jQuery 1.x?
- 是否有一个与jQuery相同的Request.IsMvcAjaxRequest()?