0

请提出您对编码风格的想法。

在 Web 表单中,有一个选项,但不需要选择。其值为 1、2 和“全部”。值 "All" 是加载表单时的默认值,'All" 表示 1 和 2。根据选择的值,将请求发送到服务器进行处理。服务器将解析该值并返回结果响应。在用户选择“全部”值的情况下,我有两种方法:

  1. 不要在请求中包含选项值。我的示例 URL 将是"../Process.aspx"。服务器将检测并知道用户选择了“全部”值。
  2. 在请求中包含具有特定值的选项值(例如:-1)。我的示例 URL 将是"../Process.aspx?option=-1"。服务器将检测并知道值是否为 -1,这意味着用户已选择“全部”值。

请为此建议我最好的解决方案。谢谢。

4

4 回答 4

2

变体 1 对我来说似乎更自然。它没有指定过滤器,所以很自然地,所有元素都应该返回。

它也与 RESTful API 的工作方式一致:http://server/api/files将返回所有文件。http://server/api/files/test.txt将返回一个特定的文件。

于 2013-02-07T08:36:25.770 回答
2

我会选择选项一的变体。

如果选项的值未知或未指定,则使用默认值。如果选项值为 -1(或与默认选择关联的任何值),请确保以相同的方式处理此问题。在未知值的情况下,我也会记录该值。即,如果您使用记录器,请将其记录为调试信息。当您添加新值并且无法弄清楚系统似乎忽略这些的方式时,这通常会变得非常方便。

将未知值作为默认值处理可确保带有已弃用选项的书签/链接在一定程度上仍能工作,从而提供比错误消息更好的用户体验

于 2013-02-07T09:12:15.867 回答
1

我会采取方法一。

首先检查是否设置了option参数。如果没有,请在您的代码中为其分配一个默认值。如果已分配,请检查输入并进行处理。这样,您还需要在 1 个地方管理您的代码。(默认值)

于 2013-02-07T08:55:14.240 回答
0

“全部”应该被赋予一个数值(如 3)。元素的标记应该如下所示:

<select name="fieldname">
    <option value="1">Value1</option>
    <option value="2">Value2</option>
    <option value="3">All</option>
</select>

服务器应该读取 POST 响应并使用 switch 控制语句来决定如何处理这些值。

switch(postvar):

case 1: // processing for 1 value goes here

case 2: // processing for 2 value goes here

case 3: // processing for "All" value goes here

endswitch;
于 2013-02-07T08:36:35.317 回答