2011-10-04 65 views
1

对于一个正在进行的项目,我有(其中包括其他类)在ASP MVC 3 Razor视图细节添加图片如下:如何为使用实体框架

public class Page 
    { 
     [Key] 
     public int PageId { get; set; } 
     public string Name { get; set; } //eg. "AboutUs", "Location" 
     [Column(TypeName = "ntext")] //force Entity Framework to create a ntext column 
     public string Title { get; set; } 
     public string Subtitle { get; set; } 
     public string Content { get; set; } 



     //navigational properties 
     public virtual ObservableCollection<Image> Images{ get; set; } //one Page has many Images 

     public Page() 
     { 
      Images= new ObservableCollection<Image>(); 
     } 
    } 

我使用实体框架代码第一种方法中这个ASP MVC 3项目(使用Razor)并且没有任何问题插入和更新这种类型的对象。

但是:我怎样才能有一个主详细视图,其中的细节部分是由图像组成的(请参见类定义)。 那么如何添加图像,如果用户不希望它被删除,当然如何显示列表中的所有图像?

任何提示深表感谢!

回答

0

看看这个帖子:Display image from database in asp mvc

如果您正试图从数据库渲染,创建你的控制器的方法来获取图像,并使用它作为你的图像源如上面的例子。唯一的区别是你将被包含在一个

<ul> 
@foreach(var image in Model.Images) { 
    <li><a href="#"><img src="@Url.Action("Show", "Image", new {id = image.Id})" /></a></li> 
} 
</ul> 

那么你的模型将包含图像的标识的,这将是操作方法来检索图像的工作。

+0

:我认为这是不可能的,因为图像存储在dbms中。所以没有可能有一个URL(一种解决方案是将图像存储在文件系统上,而不是这种方法可行) –

+0

看看这篇文章[这里](http://stackoverflow.com/questions/ 880515 /显示图像从 - 数据库中-ASP-MVC)。 – shuniar

+0

这部分解决了这个问题......这个解决方案是基于这样一个事实,即图像(以某种方式)已经存储在dbms中。我的要求是:用户可以添加和删除图像,最后做实际的保存页面对象(包含图片)。这意味着她可以决定不保存页面对象,这意味着图片不应该存在于dbms中,但由于解决方案的事实,它们已经存储了。 –