AspNetZero-用户索引视图缩略图问题

时间:2018-10-10 04:33:21

标签: asp.net asp.net-mvc aspnetboilerplate

我复制了AspNetZero解决方案中用于“个人资料图片”功能的所有代码。我指的是允许用户上传自己的照片的功能。 我已经将现有的模式,JS文件和控制器方法分别复制到我的员工控制器和员工文件夹中,因为我想要相同的功能。

上传图像并将其保存到二进制对象表中就可以了。

当我尝试在员工索引视图数据表列中显示上载的照片的缩略图时出现问题。我从解决方案的用户索引视图复制了此功能。

呈现我的员工索引视图时,缩略图不会出现。当我单击图像缩略图时,它会打开新标签并为我复制的控制器方法引发404错误。

以下是在用户索引视图中显示缩略图的JS代码:

targets: 1,
data: "userName",
render: function (userName, type, row, meta) {
var $container = $("<span/>");
   if (row.profilePictureId) {
       var profilePictureUrl = "/Profile/GetProfilePicture?t=" + row.profilePictureId;
       var $link = $("<a/>").attr("href", profilePictureUrl).attr("target", "_blank");
       var $img = $("<img/>")
        .addClass("img-circle")
        .attr("src", profilePictureUrl);
   $link.append($img);
   $container.append($link);
   }
   $container.append(userName);
   return $container[0].outerHTML;
  }

这是我的员工索引视图中的相同代码:

 targets: 4,
 orderable: true,
 autoWidth: true,
 data: "fullName",
 render: function(fullName, type, row, meta) {
         var $container = $("<span/>");
          if (row.employeePictureId) {
             var profilePictureUrl = "/Employee/GetProfilePictureById?id=" + row.employeePictureId;
             var $link = $("<a/>").attr("href", profilePictureUrl).attr("target", "_blank");
             var $img = $("<img/>").addClass("img-circle").attr("src", profilePictureUrl);
       $link.append($img);
       $container.append($link);
     }
    $container.append(fullName);
    return $container[0].outerHTML;
     }

不起作用的代码行是ProfilePictureUrl行。

var profilePictureUrl = "/Employee/GetProfilePictureById?id=" + row.employeePictureId;

如果我用用户index.js中的行替换上面的行,并调用概要文件控制器方法,那么它就可以正常工作。但是,当我尝试调用员工控制器方法时,它会不断抛出404错误。 我的员工控制器在我的解决方案中与配置文件控制器处于同一级别。两个控制器都在我的MVC应用程序的同一区域中。

1 个答案:

答案 0 :(得分:0)

我只是解决了我的问题。在区域文件夹之外还有另一个配置文件控制器。因此,用户index.js中使用的URL无需提及完整路径。 用户照片功能在应用程序的根目录级别而不是区域内的那个级别点击配置文件控制器。 就我而言,我必须像对待我所在区域的所有模式和脚本一样对待URL。 这是有效的解决方案

var empPhotoUrl = abp.appPath + 'AreaName/Employee/GetProfilePictureById?id=';