我在一个名为RiSE的CMS中工作,并且有许多限制。我在尝试输出C#时也在思考PHP。
我有一个联系表单,通过由" iParts"组合而动态生成。每个iPart都包含一个ASCX文件到模板和垃圾的魔法中。
作为一个例子,我可以有2个iPart,每个都添加一个文本框。如何生成这两个文本框的列表,我可以在发布后调用以获取值?
我现在在做什么,几乎可以工作......
我认为我称之为控制器,它(我认为)定义了这样的属性;
namespace EmailForm
{
[DataContract(Name = "EmailForm")]
public class EmailForm : iPartCommonBase
{
public static Dictionary<String, String> inputs = new Dictionary<String, String>();
}
}
现在在我(我认为)控制器中,我像这样添加Dictionary inputs
;
EmailForm.inputs[randId + "_" + inputEmailLabel.ToString()] = input.UniqueID;
我最终得到的是一个键值对列表,其中包含一个前缀为一些随机字符串的标签(以防止崩溃/覆盖)和id。
提交表单时,我遍历字典并使用ID字符串访问已发布的值。非常直接,但是,如果我在填写表单并点击提交之前重新加载页面3次,我最终会在我的词典中输入6个条目,除了最后2个参考不存在ID之外的所有内容。
我应该做些什么? (不幸的是,使用LAMP不是一种选择)
答案 0 :(得分:0)
最后我找到了一个简单的解决方案,我认为它是一个黑客,但ASP也是如此
if (Request.Form.AllKeys.Contains(post.Value))
{
emailBody.Add(post.Key.Substring(8) + ": " + Request.Form[post.Value]);
}
字典仍包含&#34; rogue&#34;条目,但我按现有的帖子数据过滤掉它们。