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

Fetching images from database on the selection of item in ASP.NET MVC

提问人:zeifi 提问时间:9/6/2015 最后编辑:marc_szeifi 更新时间:9/6/2015 访问量:46

问:

我是 MVC 的新手 ASP.NET 对它了解不多。我想从数据库中获取 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)"/>    
ASP.NET-MVC 格式

评论


答:

0赞 Daniel Congrove 9/6/2015 #1

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

但是,首先,您调用 LetterPic Url 的位置:

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

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

您可以尝试为 obj 赋值。LetterPic,然后再将其返回到视图,看看这是否解决了您的问题。

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