1

我正在尝试更改 asp.net 2.0 脚本以根据 URL 变量从数据库中动态收集值,而不是拥有多个版本的脚本,每个版本都有自己的硬编码值(这就是它的设计方式)。

错误是这样的:

Line 51:     Private MSG_FROM As String = "valuehere"
Line 52:     Private MSG_FROM_NAME As String = "valuehere"
Line 53:     Private MSG_SUBJECT As String = "<%# forms.FieldValue("MSG_SUBJECT", Container) %>"
Line 54:     Private MSG_BODY As String = "valuehere"

问题出在第 53 行,这是我为获得数据库值而设置的此测试运行的唯一变量。如果值是硬编码的,则数据库连接很好,脚本运行正常。

谁能给我一个关于问题所在的见解?MSDN 声明我必须插入一个行终止符。我在第二个引号之后尝试了一个/r/nand无济于事。Environment.NewLine

这不是我真正理解的语言,但我希望这是我需要输入的非常基本的东西。

谢谢,本


根据回复的一些附加信息:

MSG_SUBJECT 是对具有该名称的 db 单元的调用。该值是纯文本,用于指示它将生成的电子邮件的主题行。这里的两个解决方案都让脚本运行,但误以为第一个发送电子邮件的主题为 <%# forms.FieldValue("MSG_SUBJECT", Container) %> ,第二个发送的主题为 <%# forms.FieldValue('MSG_SUBJECT', Container) %> 因此不将其识别为引用 db 表单元格,而是将其识别为变量本身。通常在代码中它会说 rivate MSG_SUBJECT As String = "您已完成的表格已附加" 并且下一个变量将出现在下面的行中,即要发送到的地址,发送自。但实际上,代码没有更多内容。整个脚本在服务器端运行。虽然我可以在发布表单页面中包含这些变量并且这会起作用,这不是我想要的解决方案,因为脚本还可以接收从使用 URL 提交到设施的 acroform 提交的 FDF 数据,因此在这种模式下,这些消息变量必须包含在服务器端脚本中。正如你所说,我真的不知道这是否可能,这只是一个赌注,因为将变量保存在数据库中比使用硬编码变量的多个脚本版本更容易管理和部署新表单. 感谢你的协助。这只是一个平局,因为将变量保存在数据库中比使用硬编码变量的多个版本的脚本更容易管理和部署新表单。感谢你的协助。这只是一个平局,因为将变量保存在数据库中比使用硬编码变量的多个版本的脚本更容易管理和部署新表单。感谢你的协助。

4

2 回答 2

1

它是一个语法错误,您必须"像这样将字符串中的字符加倍来转义它们:

Private MSG_SUBJECT As String _
    = "<%# forms.FieldValue(""MSG_SUBJECT"", Container) %>"

但我认为这不会解决你真正的问题。您必须<%#在 aspx 表单页面中而不是在代码中编写标记。你在做什么MSG_SUBJECT

于 2012-04-20T14:06:03.623 回答
0

尝试改变这个:

 "<%# forms.FieldValue("MSG_SUBJECT", Container) %>"

对此: "<%# forms.FieldValue('MSG_SUBJECT', Container) %>"

MSG_Subject 周围的双引号可能使它认为第一个引号是字符串的结尾。

我有一种感觉,您尝试执行此操作的方式确实行不通,因为您无法以这种方式将事物绑定到变量。<%%> 是在页面的htm端使用的,但是你的变量看起来是服务器端的?

也许显示更多您的代码。

更新

这可能会有所帮助:

http://msdn.microsoft.com/en-us/library/dw70f090(v=vs.100).aspx

听上去,您需要做的就是根据某种 ID 从数据库中获取主题?然后将它分配给一个变量?

于 2012-04-20T14:10:27.010 回答