我得到了控制器,它在Json中返回带有图像的pathes列表。我想解析它并逐个输出图像。但是我的ajax
脚本无效。
(当我点击链接时,我也添加了@Html.ActionLink
正常工作。
所以继承代码
脚本:
<div>
@Html.ActionLink("Header", "GetImagesList") ;
<script type="text/javascript">
$.ajax({
url: "/Header/GetImagesList",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (text) {
var fileList = JSON.parse(text);
for (var i = 0; i < fileList.length; i++) {
document.write("<div>" + " <img src="+fileList[i]+" alt=\"image\" /> "+ "</div>");
}
alert("test");
}
});
</script>
</div>
控制器
public ActionResult GetImagesList()
{
var imagesList = Directory.GetFiles("C:\\Images");
return Json(imagesList, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:2)
因为dataType是&#34; json&#34;,jQuery应该已经为你解析JSON,而成功回调中的参数应该是一个JavaScript数组。没有必要再次解析它......
success: function (fileList) {
for (var i = 0; i < fileList.length; i++) {
document.write("<div>" + " <img src="+fileList[i]+" alt=\"image\" /> "+ "</div>");
}
}
答案 1 :(得分:0)
尝试这样的事情......
Result
{
for (var i = 0; i < fileList.length; i++) {
alert("<div>" + " <img src="+fileList[i]+" alt=\"image\" /> "+ "</div>");
}
}
public JsonResult GetImagesList()
{
var imagesList = Directory.GetFiles("C:\\Images");
return Json(imagesList, JsonRequestBehavior.AllowGet);
}
答案 2 :(得分:-1)
你应该试试这个:
@Html.ActionLink("Header", "GetImagesList",null,new{@id="link"}) ;
<script type="text/javascript">
$("#link").click(function(){
$.ajax({
url: "@Url.Action("GetImagesList","Header"),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (text) {
var fileList = JSON.parse(text);
for (var i = 0; i < fileList.length; i++) {
document.write("<div>" + " <img src="+fileList[i]+" alt=\"image\" /> "+ "</div>");
}
alert("test");
}
});
});