ASP Dot Net:如何在页面上重复出现微小差异的HTML部分?

tin*_*y05 4 c# asp.net

这是一个非常简单的问题.

我有这样的HTML代码:

<div>
 <img src="image1.jpg" alt="test1" />
</div>
<div>
 <img src="image2.jpg" alt="test2" />
</div>
<div>
 <img src="image3.jpg" alt="test3" />
</div>
Run Code Online (Sandbox Code Playgroud)

等等...

数据来自DB(图像名称,替代文本).

在JAVA中,我会做类似的事情:

将信息保存在后端的数组中.

对于演示文稿,我将使用JSTL循环它:

<c:foeach items="${data}" var="${item}>
<div>
 <img src="${item.image}" alt="${item.alt}" />
</div>
</c:foreach>
Run Code Online (Sandbox Code Playgroud)

什么是ASP.net中的最佳实践我只是不想在"代码隐藏"中创建带有HTML代码的字符串,这是丑陋的IMO.

Jax*_*ian 5

我会在没有看到你的代码的情况下抓住这个:

查看ASP:Repeater控件.在它之间以及将数据(与您的差异)绑定到它之间,它可以做你想要的.

链接1 链接2

<编辑:>好的,现在我看到了你的代码,我可以帮助你更好.我肯定会使用转发器.我会在ASPX文件中这样做(我可能会有一些错误):

<ASP:Repeater id="MyRepeater" runat="server">
  <div>
    <img src="<%# Eval("Filename")>" alt="<$# Eval("AltText")>" />
  </div>
</ASP:Repeater>
Run Code Online (Sandbox Code Playgroud)

然后在你的C#中你可以拥有:

List<ObjectWithFilenameAndAltText> foo = GoGetTheseObjects();
MyRepeater.DataSource = foo;
MyRepeater.DataBind();
Run Code Online (Sandbox Code Playgroud)

我可能在这方面有一些错误,但我希望这会让你朝着正确的方向前进.如果您的图像没有专用对象,则只需使用字典或列表>,并在ASPX代码中使用"密钥"和"值".