我需要在图像拖动时从javascript调用控制器动作。
我的javascript代码是
$trash.droppable({
accept: "#gallery > img",
// activeClass: "ui-state-highlight",
drop: function (event, ui) {
var a = ui.draggable;
var itemsarray = [];
itemsarray.push(a[0].id);
// $.getJSON('@Url.Action("SaveImage")', { imageids: itemsarray }, function (mydata) {
// alert(mydata);
// });
$.ajax({
url: '@Url.Action("SaveImage")',
data: JSON.stringify({ imageids: 1 }),
contentType: 'application/json',
dataType: 'json',
type: 'POST',
success: function (mydata) {
alert(mydata);
}
});
deleteImage(ui.draggable);
}
});
在我的控制器代码中,
[HttpPost]
public ActionResult SaveImage(int imageids)
{
GalleryService galService = new GalleryService();
//galService.UpdatePublishedImages(imageids);
// return View("Index");
return Json("test",JsonRequestBehavior.AllowGet);
}
我的观点是
@using (Html.BeginForm("UploadImage", "Gallery", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div class="uploadMiddlePanel ">
<p class="title">
<img src="Images/event_equation_icon.png" width="25" height="25" alt="event Logo" />
Gallery Management</p>
<p class="lightGrayTitle">
Upload Images</p>
<div class="UploadContainer">
<div class="uploadImagePanel" id="gallery">
@foreach (var src in @imageList)
{
<img src="@Url.Content("~/Content/GalleryImages/" + src.Text)" id="@Url.Content(src.Value)" alt="Image" class="imagePreview" />
}
但我的js调用函数没有出现在我的控制器之前,是缺少任何东西,或者是从js调用控制器的任何其他方式。
感谢
答案 0 :(得分:0)
尝试像这样调用控制器动作结果
$.ajax({
type: 'POST',
url: "@Url.Content("/controllerName/SaveImage/")",
答案 1 :(得分:0)
请尝试以下事项。
1)您的页面不应该有任何jQuery错误
2)尝试使用下面的直接网址 $就({ url:'ControllerName / SaveImage',
3)返回控制器类型
[HttpPost] public JSONResult SaveImage(int imageids)