【问题标题】:designing webpages in ASP.NET [duplicate]在 ASP.NET 中设计网页 [重复]
【发布时间】:2010-01-04 03:39:14
【问题描述】:

可能重复:
Does anyone beside me just NOT get ASP.NET MVC?

我不太了解 ASP.NET ATM。我在 2010 beta2 中查看了 MVC 2,发现我的主机不支持它。由于我的应用程序是大量后端基础和轻量级界面,我认为常规 ASP.NET 应该可以找到工作。

无论哪种情况,我都觉得写起来非常烦人

<div>
<% foreach(var link in Html.Encode(ViewData["Links"])) { %>
<a href="<%=link%>"><%=link%></a><br>
<% } %>
<div>

我发现使用 Response.Write 或在 @"" 字符串中返回带有 html 的字符串要容易得多。这个例子被简化了,我有一些相当复杂的数据要显示。我是否遗漏了什么,或者我应该在我的 C# 源代码中编写任何复杂的 html?

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    如果您愿意,您可以使用 Response.Write,但我建议您查看 Repeater 控件以执行此类任务。您可以使用模板和数据绑定或处理ItemDataBound 事件。

    【讨论】:

      【解决方案2】:

      哦,男孩。

      不要将您的代码与标记放在一起。使用中继器或列表视图控件。循环等代码属于代码隐藏(.cs)文件。

      ASP.NET 页面模型的一大优点是代码和标记几乎完全分离。如果您发现自己在标记中添加了 ,请花 很长很长 的时间,问问自己为什么您所做的事情不在代码文件中。

      相反,如果您发现自己在代码隐藏中生成标记,请再花点时间长时间问问自己为什么。中继器、列表视图等非常紧凑、非常快速并且专为这项任务而设计。以应有的方式使用可用的工具,并将代码和标记分开。

      更新:回应以下评论。

      如果您只想发出一个锚点,请执行以下操作:

      标记:

      <a runat="server" id="anchorMyLink">My link</a>
      

      代码隐藏:

      void Page_Load(object sender, EventArgs e)
      {
        anchorMyLink.InnerText="Text that user sees as link";
        anchorMyLink.Href="http://www.google.com";
      }
      

      这是假设您只想发出单个链接,而不是位于重复列表中的内容(例如在表格或行列表中)。服务器控件(具有 runat="server" 属性的任何东西)都可以在代码隐藏中以这种方式进行修改。

      【讨论】:

      • 有没有更简单的方法来编写 ahref 链接?我看了看中继器。看起来无论哪种方式,我都需要写两次 文本
      【解决方案3】:

      这与我之前详细回答的一个问题非常相似:

      Does anyone beside me just not get asp.net MVC?

      我的答案是被接受的最佳答案。我只是留下链接而不是在这里复制它,但我强烈建议您查看它,因为我认为它会解决您的问题和疑虑。

      【讨论】:

      • 根据您的回答,一些谷歌搜索和一些时间思考。我想我只是将所有页面重定向到lazy.aspx 并手动输出代码。不是因为我不想学习 webforms 或更多 MVC,而是因为我没有编写 web 控件。
      • 僵尸 - 如果你是认真的,那么我认为你会后悔手工做所有事情。使用 Web 表单,您根本不必编写 Web 控件。我已经写了一些,但是随着迁移到 ASP.NET 3.5(和更早的母版页),您将在现在构成我的应用程序的 270 多个页面中找不到任何自定义控件!无论如何,感谢您选择此作为“最佳”答案。
      猜你喜欢
      • 2010-09-29
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      相关资源
      最近更新 更多