MVC:OnDropDownChange呼叫控制器

MVC: OnDropDownChange call controller

本文关键字:呼叫控制 控制器 呼叫 OnDropDownChange MVC      更新时间:2023-09-26

我的控制器上有这个方法

public JsonResult GetPlaceImageUrls(int? id)
{
     string[] urls = PlaceService.
                      GetByID(id, "Images").
                      Images.Select(i => i.URL).
                      ToArray();
     return Json(urls.First(), JsonRequestBehavior.AllowGet);
}

我确信它会返回我想要的数据。我把onchange = "OnPlaceChange()"放在我的下拉菜单上,我也确定onchange事件正在被触发。但是我想做的是:

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
    function OnPlaceChange() {
        var pid = document.getElementById("s_place").value;
        $.ajax({
            url: "admin/BlogEntries/GetPlaceImageUrls/" + pid,
            type: "GET",
            dataType: JSON,
            success: function (data) {
                window.alert(data);
            }
        });
    }
</script> 
}

但这行不通。我在控制器上放置了一个断点,但它没有被命中。有什么想法吗?问候。

更新

url: "/GetPlaceImageUrls/" + pid,

更改 AJAX URL 解决了非命中断点问题。但是现在,成功功能不起作用。

首先,问题是 ajax URL,解决方案包含在问题中。成功函数的主要问题是没有得到的是它将数据视为JSON,因为我在ajax上添加了"数据类型:JSON"。但是,我的控制器方法返回一个字符串数组。所以删除数据类型:JSON 解决了我的问题。我相信"数据类型:文本"也会做同样的伎俩。