0

我需要在图像拖动时从 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 调用控制器的任何其他方式。

谢谢

4

2 回答 2

0

尝试像这样调用您的控制器操作结果

   $.ajax({
        type: 'POST',
        url: "@Url.Content("/controllerName/SaveImage/")",
于 2012-08-18T08:37:18.897 回答
0

请尝试以下内容。

1) 你的页面不应该有任何 jQuery 错误

2) 尝试使用下面的直接 url $.ajax({ url: 'ControllerName/SaveImage',

3) 控制器的返回类型

[HttpPost] public JSONResult SaveImage(int imageids)

于 2012-08-18T08:44:35.053 回答