I have the following code:
public ActionResult AtualizaCliente(int id)
{
ViewBag.idFoto = new SelectList(dao.fotos, "idFoto", "Foto");
ViewBag.idInformacao = new SelectList(dao.informacoes, "idInformacao", "titulo");
return View(dao.cliente.Find(id));
}
private string PegarCaminhoImagem(Int16 controle)
{
sistema_mobileEntities dao = new sistema_mobileEntities();
dao.fotos.Find(controle);
var caminho = dao.fotos.First().Foto;
return caminho;
}
public WebImage ObterWebImage(short idFoto)
{
int largura = 100;
int altura = 100;
String caminhoFoto = PegarCaminhoImagem(idFoto);
return new WebImage(@caminhoFoto).Resize(largura, altura, false, false);
}
public ActionResult AtualizaFoto(Int16 caminhofoto)
{
try
{
WebImage webImagem = ObterWebImage(caminhofoto);
return File(webImagem.GetBytes(), "image/png");
}
catch (Exception ex)
{
return Json("A Imagem não existe : " + ex.Message);
}
}
public string ObterFotoBase64(Int16 caminhofoto)
{
try
{
WebImage webImagem = ObterWebImage(caminhofoto);
return Convert.ToBase64String(webImagem.GetBytes());
}
catch (Exception ex)
{
return "A Imagem não existe : " + ex.Message;
}
}
on the Controller.
What is the best way to pass the image path so that it is viewed?
@model ProjetoDelphiMobile.Models.cliente
@{
ViewBag.Title = "";
}
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script><script>$(document).ready(function(){$("#idFoto").on("change", function () {
var srcRecebe = $($(this)).val();
if (srcRecebe > 0) {
$.post("@Url.Action("ObterFotoBase64", "ConsultaCliente")", { idFoto: srcRecebe }).done(function (data) {
alert(data);
$('#foto').attr("src", "data:image/image/png;base64," + data);
});
}
});
});
</script>
<form>
<fieldset data-role="controlgroup">
<label>Foto:</label>
<div id="selecao">
@Html.DropDownList("idFoto", String.Empty)
</div>
<br />
<div>
<img id="foto" src="@Url.Action( "AtualizaFoto", "ConsultaCliente", new {caminhofoto = 1 })" alt="thumbnail" />
</div>
<br />
<label>Nome:</label>
@Html.TextBoxFor(model => model.nome, new { disabled = false })
<label>Nome:</label>
@Html.TextBoxFor(model => model.nome, new { disabled = false })
<label>Nome do pai:</label>
@Html.TextBoxFor(model => model.pai, new { disabled = false })
<label>Nome da Mãe:</label>
@Html.TextBoxFor(model => model.mae, new { disabled = false })
<label>Data de Nascimento:</label>
@Html.TextBoxFor(model => model.datanascimento, new { disabled = false })
<ul data-role="listview" data-inset="true" data-divider-theme="e">
<li><a href="/ConsultaCliente">Retornar para consulta</a></li>
</ul>
</fieldset>
</form>