【问题标题】:Separating Content (aspx) from Code (aspx.cs) in ASP.NET在 ASP.NET 中将内容 (aspx) 与代码 (aspx.cs) 分离
【发布时间】:2010-05-13 19:31:56
【问题描述】:

我想知道将 aspx 页面 (ASP.NET 3.5) 的内容与代码 (我使用 C#) 分开的最佳做法是什么。我有一个表单,用户可以在其中输入数据 - 例如,他们可以输入百分比。如果他们输入无效的数据,他们会收到一条错误消息:

<p class="errormsg" id="percenthigh">Please enter a percent below 100</p>
<p class="errormsg" id="percentnegative">Percent cannot be below 0</p>
<p class="errormsg" id="percentnot">This is not a percent</p>

所以本质上我隐藏了错误消息并根据用户输入的内容显示错误消息。

我相信这是将内容与背后的代码分开的最佳方式。但是,如何根据用户输入选择元素并隐藏/取消隐藏它们?我知道我可以对元素执行 runat="server" 但问题是我无法按类选择并且仅限于 ID。

您推荐什么解决方法?除了将值放入众所周知难以调试的代码中。

这在 ASP.NET 4 中是否也已“修复”?而且我只对通过 C#/ASP.NET 执行此操作感兴趣,因为有些人禁用了 JavaScript。这意味着我必须检查客户端和服务器端的错误。

【问题讨论】:

    标签: c# asp.net separation-of-concerns


    【解决方案1】:

    为此使用 ASP.Net Validation 控件。这将为您处理代码中的布线。您对问题中的每个段落标签使用不同的验证控件。

    【讨论】:

      【解决方案2】:

      你应该看看asp net validators。在大多数情况下,这些已经足够了。

      如果 ASP NET 验证器因任何原因不适合,您可以检查 jQuery 解决方案,例如 this one

      无论如何,我建议您避免花时间解决已经以许多不同(好的)方式解决的问题。

      【讨论】:

      • 很公平,但我只是不喜欢添加不必要的 javascript 代码,我不知道它的作用 - 这是一个我尽量避免的黑盒子。
      【解决方案3】:

      当您需要唯一元素时,Selectionm 应该按 ID 进行,ID 在所有元素中应该是唯一的。类在 HTML 中的使用类似于类型,通常用于样式设置。

      此外,asp.net 项目中的文本应保存在资源文件中。这样可以轻松更改语言。

      【讨论】:

      • 谢谢!我知道这一点,但我想这一定是漫长的一天。不知道资源文件,必须检查更多。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多