配置文件图像未显示在mvc 4中的子页面中

时间:2015-10-29 05:51:33

标签: c# asp.net-mvc asp.net-mvc-4

我在layout.cshtml页面中有一个用户个人资料图片,该页面显示在整个页面中。现在的问题是图像显示在母版页中,但导航到子页面时却没有显示。请帮助我。

登录控制器显示图像:

public FileContentResult DisplayImage(int userId)
{
    byte[] imageByteData = null;
    try
    {
        using (var db = new AdminDb())
        {
            var userImage = (from usr in db.User.AsNoTracking()
                             where usr.UserId == userId
                             select usr.UserImage).FirstOrDefault();
            if (!string.IsNullOrEmpty(userImage))
            {
                imageByteData = System.IO.File.ReadAllBytes(userImage);
                return File(imageByteData, "image/jpeg");
            }
            else
            {               
                imageByteData = System.IO.File.ReadAllBytes(Server.MapPath(Url.Content("~/Content/UserProfileImages/defaultimage.png")));                   
                return File(imageByteData, "image/jpeg");
            }
        }
    }
    catch (Exception)
    {
        return File(imageByteData, "image/jpeg");
    }
}

用于保存路径的UserController。(在此将imae保存到外部文件夹并在db中保存路径)

if (file.ContentLength > 0)
{
    var setting = db.Setting.AsNoTracking().Where(x => x.Code == OtherConstants.UserPhotoPath)
              .Select(x => new
              {
                  SettingId = x.SettingId,
                  SchemaDefinitionId = x.SchemaDefinitionId,
                  Value = x.Value
              }).FirstOrDefault();

    string path = setting.Value;
    //Getting the path + the image name
    var paths = Path.Combine(path + fileName);
    user.UserImage = paths;
    //Checking whether the uploaded file is already exists and if not exists save the details
    if (!System.IO.File.Exists(paths))
    {
        file.SaveAs(paths);
    }

我的Layout.cshtml页面(使用动作控制器的地方)

<img id="imgLogin" class="lblLogin UserProfileDeatils" src="@Url.Action("DisplayImage", "Login", new { userId = Assyst.PanERP.Common.AppSession.Common.UserID })"  />
</div>

1 个答案:

答案 0 :(得分:0)

根据您提问中提供的信息,我认为问题是由两个原因之一引起的

  1. 您的子页面使用的布局页面与其中的布局页面不同 你已经把个人资料图像
  2. 您的子页面未使用布局页面
  3. 您可以通过在返回图像的方法中放置断点(使用登录控制器)来确认这一点,并检查在浏览器中加载子页面时是否调用该方法。如果未触及该方法,则可以确认问题是由于上述原因之一。