生成动态添加的输入的列表/引用

时间:2017-11-06 19:00:37

标签: c# asp.net

我在一个名为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不是一种选择)

1 个答案:

答案 0 :(得分:0)

最后我找到了一个简单的解决方案,我认为它是一个黑客,但ASP也是如此

if (Request.Form.AllKeys.Contains(post.Value))
{
    emailBody.Add(post.Key.Substring(8) + ": " + Request.Form[post.Value]);
}

字典仍包含&#34; rogue&#34;条目,但我按现有的帖子数据过滤掉它们。