传递查询字符串中的值以自动填充表单上的字段

时间:2012-08-20 20:14:04

标签: asp.net html forms query-string

我想将一些字段(例如名称信息)传递给表单。我可能不是这个表单的开发者,所以我不确定如何处理页面加载或查询字符串。

通过浏览一些Web表单,您可以按其name属性调用文本字段,并自动设置这些字段。例如,SO就是这样做的。如果你转到https://stackoverflow.com/questions/ask?title=THISISMYTITLE,第一个字段(标题字段)将用THISISMYTITLE填写。

另一个很好的例子是redmine。在这种情况下,我可以通过查询字符串将任何一个字段(甚至是自定义字段)设置为值。

最后,有一些像1Password这样的工具可以在Mac和Windows上执行类似的操作 - 它将密码存储在本地数据库中。您可以让它启动您的浏览器,并放在内容中。

出于某种原因,当我尝试将这样的查询字符串传递给我开发的一些asp.net网络应用程序时,页面加载方法似乎传递了它们。它知道它们在那里(我可以在Request.QueryString对象中看到它们),但它没有填写字段。

有没有可靠的方法来执行此操作,而无需要求开发人员更新代码?为什么有些网页会允许这样做,有些网页却不允许这样做?它似乎与浏览器无关 - IE和Chrome的行为方式相同。

注意 - 这对我来说,通过使用查询字符串或类似的东西将字段传递给任意网页。这不是用于访问网页本身的字段。

1 个答案:

答案 0 :(得分:3)

这不会自动发生,您必须在表单中显式设置值,并阅读QueryString中的参数。如果SO和其他网站似乎这样做是因为他们的代码正在URL中查找这些参数并填充表单中的相应元素。

类似的东西:

txtTitle.Text = Request.QueryString["Title"];

等等......