C# asp.net从前端调用方法
我在后端有一个方法,我想从前端调用它,但似乎无法让它工作。这是我的密码:C# asp.net从前端调用方法,c#,asp.net,C#,Asp.net,我在后端有一个方法,我想从前端调用它,但似乎无法让它工作。这是我的密码: <% foreach(string item in Plants){ %> <li> <span class="folder"> <asp:label ID="lblPlantName" runat="server" Text='<% GetPlantName(item) %>'></asp:label>
<% foreach(string item in Plants){ %>
<li>
<span class="folder">
<asp:label ID="lblPlantName" runat="server" Text='<% GetPlantName(item) %>'></asp:label>
</span>
</li>
<%} %>
getplantName方法应该返回一个字符串并填充文本。但这不是出于某种原因而被要求的
有人有什么想法或建议吗?要返回一个字符串,您需要
响应。请编写,该字符串用速记形式写成
,以便:
<%= GetPlantName(item) %>
请使用
而不是
,方法应该是公共的或受保护的。虽然您的代码可能正在工作(使用其他人建议的修复程序),但这不是一个好的做法。使用ASP.NET时,这是一种经典的ASP方式,就像在高速公路上驾驶跑车以每小时10英里的速度行驶一样
一个好的做法是使用中继器
控件-它仍然很简单,而且更加优雅
.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>
在您的情况下,只需将arrPlants
替换为真正的数组,Plants
请随时询问更多细节或解释。:) 您可能需要澄清您的术语。“前端”和“后端”我想你分别指的是“aspx”和“代码隐藏”,但如果没有上下文,我通常会将“前端”和“后端”解释为“客户端”和“服务器端”,这是一个完全不同的问题。@Scott Stafford:谢谢你的评论。只是想澄清一下:前端:ascx后端:ascx.csI不确定我是否同意这是经典的ASP。虽然使用中继器控件很好,但此中继器控件选项在MVC中不可用。此外,我还发现,通过创建自己的控件,它们通常工作得更好,而且不会受到控件带来的限制。@Funky我已经编写了足够多的经典ASP相信我。。。拥有Label
控件并以意大利面代码分配其文本会使Label
的使用完全无用-这种控件的全部含义是您可以在后面的代码中设置其文本。但我只是一个人,不能把我的个人意见强加给你——只要给你我的两分钱和友好的建议就行了。:)哦,还有一个记录-
是全尺寸服务器控制。如果你可以使用它,你可能也可以使用Repeater。这很酷,我感谢你的反馈,因为我想知道我做的事情是否正确!:)但是如果你没有中继器控制器可以像MVC一样使用,你会怎么做呢?对于这个解决方案,我将使用您提到的repeater,因为它是webforms站点的最佳解决方案@不好意思,我不熟悉MVC,你也没有在你的问题上加上这个标签。。但我很确定他们有比可怕的意大利面代码更好的方法?在我做经典ASP程序员的日子里,我确实看到了太多的东西
string[] arrPlants = new string[] { "Sacred Datura", "Kambroo", "Wallflower", "Beech 'Retroflexa'", "Zephyr Flower" };
rptPlants.DataSource = arrPlants;
rptPlants.DataBind();