我在后端有一个方法,我想从我的前端打电话,但似乎无法让它正常工作。这是我的代码:
<% foreach(string item in Plants){ %>
<li>
<span class="folder">
<asp:label ID="lblPlantName" runat="server" Text='<% GetPlantName(item) %>'></asp:label>
</span>
</li>
<%} %>
getplantName方法应返回一个字符串并填入文本。但由于某种原因,这不会被调用。
任何人都有任何想法或建议吗?
答案 0 :(得分:9)
请使用<%= GetPlantName(item) %>
代替<% GetPlantName(item) %>
,方法应为公开或受保护。
答案 1 :(得分:8)
要返回一个字符串,您需要Response.Write
,并以<%=%>
的形式写成:
<%= GetPlantName(item) %>
答案 2 :(得分:3)
虽然您的代码可能正在运行(使用其他人建议的修复程序),但这不是一个好习惯。当你使用ASP.NET时,它是经典的ASP方式 - 就像在高速公路上用跑车驾驶10英里/小时。
一个好的做法是使用Repeater
控件 - 它仍然很简单,而且更优雅。
.aspx
现在看起来像这样:
<asp:Repeater ID="rptPlants" runat="server">
<HeaderTemplate><ol></HeaderTemplate>
<FooterTemplate></ol></FooterTemplate>
<ItemTemplate>
<li>
<span class="folder">
<%# Container.DataItem %>
</span>
</li>
</ItemTemplate>
</asp:Repeater>
要绑定数据,请在代码后面的Page_Load
函数中包含此类代码:
string[] arrPlants = new string[] { "Sacred Datura", "Kambroo", "Wallflower", "Beech 'Retroflexa'", "Zephyr Flower" };
rptPlants.DataSource = arrPlants;
rptPlants.DataBind();
在您的情况下,只需将arrPlants
替换为真实数组Plants
。
随时询问进一步的细节或解释。 :)