我是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)"/>
答案 0 :(得分:0)
包含尝试运行代码时收到的错误消息可能会有所帮助。
但是,首先,您要拨打LetterPic网址:
<img src="@Url.Content(Model.LetterPic)"/>
在您的控制器中,您永远不会为obj.LetterPic赋值。您也不从数据库中提取UserDetailModel。相反,您正在创建一个新的UserDetailModel,这意味着所有值都是空白的。
您可能会尝试为控制器中的obj.LetterPic分配一个值,然后再将其返回到视图中,看看是否能解决您的问题。
同样重要的是要注意,控制器的第二部分,“返回View(obj)”之后的所有内容;永远不会在您的控制器中运行。如果您需要运行VirtualSpeechTherapistEntities部分,则需要在返回之前完成。