0

背景:我有一个 asp.net mvc4 web 应用程序。在一个页面中,我得到一个包含文件信息的下拉列表。我尝试做的是让用户单击一个按钮,然后启动一个弹出窗口,用户可以在其中输入名称并选择要上传的文件。非常类似于我们在stackoverflow中上传图片的方式。

文件上传完成后。在我的操作中,我返回包含文件名和上传时间的 json 数据。

返回 Json(新 { 错误 = 假,uploadedFilename = 文件名,uploadedTime = DateTimeOffset.Now }

问题:不幸的是,该操作返回的是在页面上打印 json 数据。

在此处输入图像描述

谁能帮我 1. 我的视图如何捕获 json 数据并更新我的下拉列表而不是在页面上显示它们?2. 我应该使用 ajax (jquery ajax 或 ajax.beginform) 来处理这个吗?

非常感谢问候

4

1 回答 1

0

您可以按如下方式实现:

在 Controller 中传递 json 数据:

return Json(new[] {
    new { id = "value1", name = "name1" },
    new { id = "value2", name = "name2" }
}, JsonRequestBehavior.AllowGet);

然后 Make 和 ajax 调用以接收 json 响应,您可以按如下方式填充下拉列表:

  $.ajax({
    type: //GET or POST depends on your need,
    contentType: 'application/json;charset=utf-8',
    url: //Your URL,
    data: // Pass data if any,
    dateType: 'json',
    success: function (data) {
             var list = $('select#id');
             list.find('option').remove();
             $(data).each(function(index, item) {
                  list.append('<option value="' + item.id + '">' + item.name + '</option>');
             });
    }
  });
于 2013-09-04T04:46:50.443 回答