我有一个 xml 文件,其中存储了图像 url、描述及其类别。在我看来,我有一个下拉列表,它也是从 xml 文件的“类别名称”中提取的,现在我需要显示所选类别的图像。我一直在关注MVC和http://forums.asp.net/t/1580460.aspx/1中的几个示例填充下拉列表。我得到了下拉列表部分的工作,但卡住了图像 url 和 desctiption。
这是我的 xml 文件的样子:
<?xml version="1.0" encoding="utf-8" ?>
<SymbolOption>
<Category id="1" name="categoryA">
<image url="A.png" desc="image a"/>
<image url="B.png" desc="image b"/>
<image url="C.png" desc="image c"/>
</Category>
<Category id="2" name="categoryB">
<image url="x.png" desc="image x"/>
<image url="y.png" desc="image y"/>
</Category>
</SymbolOption>
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var imageFile = Server.MapPath("~/Data/ImageSource.xml");
var category =
from symbolCategory in XDocument.Load(imageFile).Descendants("Category")
select new SelectListItem
{
Value = symbolCategory.Attribute("id").Value,
Text = symbolCategory.Attribute("name").Value
};
var model = new SymbolCategoryViewModel
{
Categories = category
};
return View(model);
}
}
视图模型:
public class SymbolCategoryViewModel
{
public string Category { get; set; }
public IEnumerable<SelectListItem> Categories { get; set; }
}
看法:
@Html.DropDownListFor(x => x.Category, Model.Categories)
<div id="displayImage">
<img src="@Url.Content("~/Content/img/" + URLfromXML)">
@Html.DisplayFor(image description)
<div>
谢谢您的帮助。