Magic QueryStrings - 要避免的好模式?

时间:2009-12-18 23:31:23

标签: .net asp.net

只是想知道如何避免在Querystrings中使用Magic Strings?我有很多像

这样的代码
if (string.IsNullOrEmpty(request.Form["projectId"]) || 
    !int.TryParse(request.Form["projectId"],out projectId))
    return null;

当然,我必须在调用页面中对projectId进行硬编码。

一种方法是使用一个static / const“Dictionary”类来定义一个“QueryStringCreateProjectProjectId”标识符的加载,但是我必须将我的JavaScript文件更改为服务器端生成的。

现在,我意识到可能没有完美的解决方案,因为抽象只能达到一定程度,并且在某些时候我必须加入字符串并希望我从不打错字,但我想知道解决方案是什么?

使这个CW成为边缘民意调查/主观,但我相信它属于SO。

1 个答案:

答案 0 :(得分:4)

对于常见的请求参数,我创建了一个知道所有“魔术”名称(字符串常量)的类,以创建指向站点中各个页面的链接。我设置了一些属性,该类会使用正确的url发出<a>标记。我的所有链接都不是硬编码的 - 所有内部网址都是使用此类构建的。

另一个类使用相同的常量字符串名称集来读取请求中的查询字符串。当我收到请求时,我使用此类创建一个对象,然后我的页面可以从该对象读取必要的值(同样,无需知道魔术字符串)。

站点的每个区域在公共集合之外都有自己的“魔术”名称,可以向链接添加参数(使用同一链接构建器类中的方法),然后从查询字符串中读取它们。通常的方式。这些也应该使用常量,以避免拼写错误。