Мне нужно вставить в мою страницу макета аватар с фотографии в base64 из "myprofile".Я получил сеансовую модель, связанную с БД.
это мой макет профиля для рендеринга img из БД:
<div class="row form-group">
@Html.LabelFor(model => model.BinaryPhoto, htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-4">
@if (Model.BinaryPhoto != null)
{
var base64 = Convert.ToBase64String(Model.BinaryPhoto);
var imgsrc = string.Format("data:image/jpg;base64,{0}", base64);
<img id="preview_photo" src="@imgsrc" alt="your image" style="height: 100px; width: 100px;" class="img-circle" />
}
else
{
<img id="preview_photo" src="#" alt="your image" style="display: none; height: 100px; width: 100px;" class="img-circle" />
}
<input type="file" name="Photo" id="Photo" style="width: 100%;" onchange="loadFile(event)" />
@*@Html.EditorFor(model => model.BinaryPhoto, null, new { htmlAttributes = new { @type = "file" } })*@
@Html.ValidationMessageFor(model => model.BinaryPhoto, "", new { @class = "text-danger" })
</div>
</div>
и это действие mycontroller:
[HttpGet]
public ActionResult Myprofile()
{
var userID = ((SessionModel)Session["SessionModel"]).UserID; // get current user id
TBL_User item = _context.TBL_User.Find(userID);
UserModel model = new UserModel();
model.UserID = userID;
model.Username = item.Username;
model.IsActive = true;
model.Name = item.Name;
model.BinaryPhoto = item.BinaryPhoto;
return View(model);
}
[HttpPost]
public ActionResult Myprofile(UserModel model, HttpPostedFileBase Photo)
{
try
{
var userID = ((SessionModel)Session["SessionModel"]).UserID; // get current user id
TBL_User item = _context.TBL_User.Find(model.UserID);
_context.Entry(item).State = EntityState.Modified; //UPDATE
if (ModelState.IsValid)
{
if (Photo != null && Photo.ContentLength > 0)
{
item.BinaryPhoto = new byte[Photo.ContentLength]; // file1 to store image in binary formate
Photo.InputStream.Read(item.BinaryPhoto, 0, Photo.ContentLength);
}
using (var trans = _context.Database.BeginTransaction())
{
item.Name = model.Name;
//item.Email = model.Email;
//item.Username = model.Username;
//item.IsActive = model.IsActive;
//item.SigavUserLogin = model.SigavUserLogin;
//item.OperationPlaceID = model.OperationPlaceID;
item.LastUpdate = DateTime.UtcNow;
item.LastUpdateBy = userID;
_context.SaveChanges();
trans.Commit();
}
return RedirectToAction("Index");
}
}
и на главной странице моего макета у меня естьмаленький "аватар" в правой части, и я хочу поместить фотографию моего профиля в этот "аватар".
<li class="dropdown dropdown-user dropdown-dark">
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" aria-expanded="false">
<i class="fa fa-search text-symbol-color-do"></i>
<img alt="" class="">
<span class="username username-hide-on-mobile text-symbol-color-do"> @sessionModel.Username </span>
<i class="fa fa-angle-down text-symbol-color-do"></i>
</a>
как я могу это сделать?спасибо