C# 显示ASP.NET MVC中的图像列表
我有一个应用程序,它接受ID并显示与公司关联的产品图像。有两个表,一个用于名为ImagesArchive的旧产品,另一个用于NewImages中的新产品。根据要求,一个ID在NewImages表中只能有一个产品。因此,我能够在我的代码中成功地做到这一点。但在ImagesArchive表中,由于我记录了该公司的所有旧产品,ID和产品之间存在一对多的关系。如何使用iframe&MVC GetOld(ID)显示列表??当找不到图像(即产品的URL不工作)时,捕获错误并显示的最佳方法是什么C# 显示ASP.NET MVC中的图像列表,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有一个应用程序,它接受ID并显示与公司关联的产品图像。有两个表,一个用于名为ImagesArchive的旧产品,另一个用于NewImages中的新产品。根据要求,一个ID在NewImages表中只能有一个产品。因此,我能够在我的代码中成功地做到这一点。但在ImagesArchive表中,由于我记录了该公司的所有旧产品,ID和产品之间存在一对多的关系。如何使用iframe&MVC GetOld(ID)显示列表??当找不到图像(即产品的URL不工作)时,捕获错误并显示的最佳方法是什么 <
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function Imagepreview() {
var ID = document.getElementById("ID").value;
document.getElementById("companyImage").src = "api/Images/GetNew/" + ID;
old();
}
function old() {
var ID = document.getElementById("KeyID").value;
document.getElementById("companyOldImage").src = "api/Images/GetOld/" + ID;
}
</script>
<style type="text/css">
#companyImage {
width: 181px;
}
#archiveImage {
margin-left: 17px;
}
</style>
</head>
<body ">
<div class="jumbotron" align="center">
<h1>Images API</h1>
<p class="lead"></p>
<div class="col-md-4" align="center">
<input type="text" name="ID" id="ID"/>
<input type="button" value="Show Image" onclick="Imagepreview()"/>
<br>
<br>
<iframe src="" id="companyImage" height="200" width="200"> </iframe>
<iframe src="" id="companyOldImage" height="200" width="200"> </iframe>
</div>
<div id="response">
</div>
</div>
</body>
</html>
--图像模型
public class Images
{
public int ID { get; set; }
public string URL_FilePath { get; set; }
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function Imagepreview() {
var ID = document.getElementById("ID").value;
document.getElementById("companyImage").src = "api/Images/GetNew/" + ID;
old();
}
function old() {
var ID = document.getElementById("KeyID").value;
document.getElementById("companyOldImage").src = "api/Images/GetOld/" + ID;
}
</script>
<style type="text/css">
#companyImage {
width: 181px;
}
#archiveImage {
margin-left: 17px;
}
</style>
</head>
<body ">
<div class="jumbotron" align="center">
<h1>Images API</h1>
<p class="lead"></p>
<div class="col-md-4" align="center">
<input type="text" name="ID" id="ID"/>
<input type="button" value="Show Image" onclick="Imagepreview()"/>
<br>
<br>
<iframe src="" id="companyImage" height="200" width="200"> </iframe>
<iframe src="" id="companyOldImage" height="200" width="200"> </iframe>
</div>
<div id="response">
</div>
</div>
</body>
</html>
HTML文件
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function Imagepreview() {
var ID = document.getElementById("ID").value;
document.getElementById("companyImage").src = "api/Images/GetNew/" + ID;
old();
}
function old() {
var ID = document.getElementById("KeyID").value;
document.getElementById("companyOldImage").src = "api/Images/GetOld/" + ID;
}
</script>
<style type="text/css">
#companyImage {
width: 181px;
}
#archiveImage {
margin-left: 17px;
}
</style>
</head>
<body ">
<div class="jumbotron" align="center">
<h1>Images API</h1>
<p class="lead"></p>
<div class="col-md-4" align="center">
<input type="text" name="ID" id="ID"/>
<input type="button" value="Show Image" onclick="Imagepreview()"/>
<br>
<br>
<iframe src="" id="companyImage" height="200" width="200"> </iframe>
<iframe src="" id="companyOldImage" height="200" width="200"> </iframe>
</div>
<div id="response">
</div>
</div>
</body>
</html>
函数Imagepreview(){
var ID=document.getElementById(“ID”).value;
document.getElementById(“companyImage”).src=“api/Images/GetNew/”+ID;
old();
}
函数old(){
var ID=document.getElementById(“KeyID”).value;
document.getElementById(“companyldimage”).src=“api/Images/GetOld/”+ID;
}
#公司形象{
宽度:181px;
}
#档案图像{
左边距:17px;
}
下面是我如何描述您使用API的过程。将ID向上传递给服务,并从服务返回图像的2个URL:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function Imagepreview() {
var ID = document.getElementById("ID").value;
document.getElementById("companyImage").src = "api/Images/GetNew/" + ID;
old();
}
function old() {
var ID = document.getElementById("KeyID").value;
document.getElementById("companyOldImage").src = "api/Images/GetOld/" + ID;
}
</script>
<style type="text/css">
#companyImage {
width: 181px;
}
#archiveImage {
margin-left: 17px;
}
</style>
</head>
<body ">
<div class="jumbotron" align="center">
<h1>Images API</h1>
<p class="lead"></p>
<div class="col-md-4" align="center">
<input type="text" name="ID" id="ID"/>
<input type="button" value="Show Image" onclick="Imagepreview()"/>
<br>
<br>
<iframe src="" id="companyImage" height="200" width="200"> </iframe>
<iframe src="" id="companyOldImage" height="200" width="200"> </iframe>
</div>
<div id="response">
</div>
</div>
</body>
</html>
公共类ImageData
{
公共字符串OldUrl{get;set;}
公共字符串NewUrl{get;set;}
}
公共类ImageController:ApicController
{
//获取两个图像-旧图像和新图像
公共ImageData GetNew(字符串id)
{
返回新的图像数据
{
OldUrl=“/images/old/”+id,
NewUrl=“/images/new/”+id,
};
}
}
现在定义一些函数从API检索新URL。这里我有两个函数:1个用于API检索,另一个用于click事件:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function Imagepreview() {
var ID = document.getElementById("ID").value;
document.getElementById("companyImage").src = "api/Images/GetNew/" + ID;
old();
}
function old() {
var ID = document.getElementById("KeyID").value;
document.getElementById("companyOldImage").src = "api/Images/GetOld/" + ID;
}
</script>
<style type="text/css">
#companyImage {
width: 181px;
}
#archiveImage {
margin-left: 17px;
}
</style>
</head>
<body ">
<div class="jumbotron" align="center">
<h1>Images API</h1>
<p class="lead"></p>
<div class="col-md-4" align="center">
<input type="text" name="ID" id="ID"/>
<input type="button" value="Show Image" onclick="Imagepreview()"/>
<br>
<br>
<iframe src="" id="companyImage" height="200" width="200"> </iframe>
<iframe src="" id="companyOldImage" height="200" width="200"> </iframe>
</div>
<div id="response">
</div>
</div>
</body>
</html>
/// Gets image URLs from the API
function getImagesFor(idForImage) {
var imageUrl = $.get('api/Image/GetNew/' + idForImage)
.done(function(data) {
// Retrieve 'OldUrl' and 'NewUrl' from the JSON returned
$("#oldImage").attr('src', data.OldUrl);
$("#newImage").attr('src', data.NewUrl);
});
}
// Hooks up the events - 'click' extracts the info and calls the service.
$(document).ready( function() {
$("#imageButton").click(function() {
var imageId = $("#imageId").text();
getImagesFor(imageId);
return false;
});
}
下面是查看结果的基本HTML:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
function Imagepreview() {
var ID = document.getElementById("ID").value;
document.getElementById("companyImage").src = "api/Images/GetNew/" + ID;
old();
}
function old() {
var ID = document.getElementById("KeyID").value;
document.getElementById("companyOldImage").src = "api/Images/GetOld/" + ID;
}
</script>
<style type="text/css">
#companyImage {
width: 181px;
}
#archiveImage {
margin-left: 17px;
}
</style>
</head>
<body ">
<div class="jumbotron" align="center">
<h1>Images API</h1>
<p class="lead"></p>
<div class="col-md-4" align="center">
<input type="text" name="ID" id="ID"/>
<input type="button" value="Show Image" onclick="Imagepreview()"/>
<br>
<br>
<iframe src="" id="companyImage" height="200" width="200"> </iframe>
<iframe src="" id="companyOldImage" height="200" width="200"> </iframe>
</div>
<div id="response">
</div>
</div>
</body>
</html>
<script type="text/javascript">
<!-- As above -->
</script>
<div>
<input type="text" id="imageId"/>
<input type="button" id="imageButton"/><br/>
<iframe src="" id="oldImage"/>
<iframe src="" id="newImage"/>
</div>
我看到您正在手动从文件系统中取出图像,然后在HTML中将其向下推。你能直接引用它所在的目录吗?您将节省大量处理,而IIS将代替ASP.NET管道完成所有工作?此外-您是否有“无可用映像”映像,如果旧/新项目中不存在该映像,则可以将其用作备用映像?还有一个非主题整理-您正在使用jQuery,因此,使用简化的语法向上操作DOM-document.getElementById(“companyImage”).src=“api/Images/GetNew/”+ID代码>变成$(“#companyImage”).attr(“src”,“api/Images/GetNew/”+ID)代码>@DominicZukiewicz,例如,URL\u文件路径在DB中有值“”。除了使用MemoryStream,我如何显示图像?我也没有“无可用图像”图像。您只需直接返回URL,浏览器将自动加载它