URL请求中的默认值

时间:2013-02-07 08:28:35

标签: c# asp.net .net coding-style

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

在网络表单中,有一个选项,但不需要选择。它的值是1,2和“全部”。值“全部”是加载表单时的默认值,“全部”表示1和2的值。 根据选定的值,将向服务器发送请求以进行处理。服务器将解析此值并返回结果响应。在用户选择“全部”值的情况下我有两种方式:

  
      
  1. 请勿在请求中包含选项值。我的示例网址是“../ Process.aspx”。服务器将检测并知道该用户选择了“全部”值。
  2.   
  3. 在具有特定值的请求中包含选项值(例如:-1)。我的示例网址是“../ Process.aspx?option = -1”。服务器将检测并知道   如果value为-1,则表示用户已选择“All”值。
  4.   

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

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

我会选择第一种选择。

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

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

答案 2 :(得分:1)

我会接近一个。

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

答案 3 :(得分: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;
相关问题