在ASP.NET MVC中选择项目时从数据库中获取图像

时间:2015-09-06 11:39:07

标签: asp.net-mvc

我是ASP.NET MVC的新手,对此并不了解。我想从列表中选择项目从数据库中获取3个图像并显示在网页上。我为列表框项设置了Id,并且表的主键相同。这是我尝试过的代码,但它不起作用我应该做什么修改。 (图像的URl存储在数据库中)

模特课程:

public class UserDetailModel
{
    public string LetterId { get; set; }
    public string LetterPic { get; set; }
    public string LetterRecord { get; set; }
    public string LetterWord { get; set; }
    public string LetterWord_Pic { get; set; }
    public string LetterWordRecord { get; set; }

    [Display(Name = "LetterDetail")]
    public List<LetterList> letterDetail;
    [Display(Name = "selectedLetter")]
    public string selectedLetter { get; set; }
}

public class LetterList
{
    public string listId { get; set; }
    public string listName { get; set; }
} 

控制器:

 public ActionResult letter(string SelectedLetter)
 {   
     demo.Models.UserDetailModel obj = new demo.Models.UserDetailModel();
     obj.letterDetail = new List<LetterList>()
         {
             new LetterList() { listId = "1", listName =  "A" },
             new LetterList() { listId = "2",  listName= "B" },
             new LetterList() { listId = "3",  listName= "C" },
             new LetterList() { listId ="4",  listName= "D"}
         };
    return View(obj);

    using (var context = new VirtualSpeechTherapistEntities())
    {
         var hurf = from b in context.hurf_e_tahaji
                    where b.Letter_Id = SelectedLetter 
                    select b;
         return View("letter", context);
   };   

主键应该等于所选的listItem id,在where子句中写什么?//

查看:

@model demo.Models.UserDetailModel

@Html.ListBoxFor(obj => obj.selectedLetter, new SelectList (Model.letterDetail, "listId","listName")) ;

@Html.Id(Model.selectedLetter);

<img src="@Url.Content(Model.LetterPic)"/>    

1 个答案:

答案 0 :(得分:0)

包含尝试运行代码时收到的错误消息可能会有所帮助。

但是,首先,您要拨打LetterPic网址:

<img src="@Url.Content(Model.LetterPic)"/>    

在您的控制器中,您永远不会为obj.LetterPic赋值。您也不从数据库中提取UserDetailModel。相反,您正在创建一个新的UserDetailModel,这意味着所有值都是空白的。

您可能会尝试为控制器中的obj.LetterPic分配一个值,然后再将其返回到视图中,看看是否能解决您的问题。

同样重要的是要注意,控制器的第二部分,“返回View(obj)”之后的所有内容;永远不会在您的控制器中运行。如果您需要运行VirtualSpeechTherapistEntities部分,则需要在返回之前完成。