我正在尝试更改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/n
和Environment.NewLine
无效。
这不是我理解的语言,但我希望这是我需要进入的基本内容。
谢谢, 本
根据回复的一些其他信息:
MSG_SUBJECT是对具有该名称的db cell的调用。该值是纯文本,用于指示它将生成的电子邮件的主题行。这两个解决方案都让脚本运行,但误以为第一个发送电子邮件的主题为&lt;%#forms.FieldValue(“MSG_SUBJECT”,Container)%&gt;第二个是&lt;%#forms.FieldValue('MSG_SUBJECT',Container)%&gt;因此,不会将其视为引用db表单元格,而是将其视为变量本身。通常在代码中它会说rivate MSG_SUBJECT As String =“你的已完成的表格被附加”,下一行的变量将跟随下面一行,即发送到的地址,发送自。但实际上,代码几乎没有。整个脚本在服务器端运行。虽然我可以在发布表单页面中包含这些变量并且这可以工作,但它不是我想要的解决方案,因为脚本还可以接收从使用URL提交到工具的acroform提交的FDF数据,因此在这种模式下这些消息变量必须包含在服务器端脚本中。正如你所说,我真的不知道自己是否有可能,这只是一个平台,因为保持数据库中的变量比使用硬编码变量的脚本的多个版本更容易管理和部署新表单。谢谢你的帮助。
答案 0 :(得分:1)
它是一个语法错误,您必须通过将它们加倍来转义字符串中的"
字符:
Private MSG_SUBJECT As String _
= "<%# forms.FieldValue(""MSG_SUBJECT"", Container) %>"
但我认为这不会解决你的真正问题。
您必须在aspx表单页面中编写<%#
标记而不是代码。
你在用MSG_SUBJECT
做什么?
答案 1 :(得分:0)
尝试更改此内容:
"<%# forms.FieldValue("MSG_SUBJECT", Container) %>"
:"<%# forms.FieldValue('MSG_SUBJECT', Container) %>"
MSG_Subject周围的双引号可能会让它认为第一个引号是字符串的结尾。
我有一种感觉,你尝试这样做的方式确实无法正常工作,因为你不能以这种方式将事物绑定到变量上。 &LT; %%&GT;在页面的htm端使用,但你的变量看起来像服务器端?
可能会显示更多代码。
<强>更新强>
这可能会有所帮助:
http://msdn.microsoft.com/en-us/library/dw70f090(v=vs.100).aspx
听起来,您需要做的就是根据某种ID从数据库中获取主题?然后将其分配给变量?