jquery – 在asp.net-mvc中,你可以将回车作为在表单中传递的对象数组的“键”的一部分吗?

摘要

我正在向我的asp.net-mvc后端发布一个对象数组,并根据一些用户输入生成“Key”,我只是意识到如果用户输入回车符合它就不起作用.

细节:

所以我有一个表单,我的一个元素是一个对象数组(称为Deliverables)

 public class FormPost
 {
       public int Id {get;set;}
       public string ProjectName {get;set;}
       public List<Deliverable> Deliverables {get;set;}
 }

 public class Deliverable
 {
      public int Id {get;set;}
      public string Name {get;set;}
      public DateTime MilestoneDate {get;set;}
 }

我在how to do correct model binding for non sequencial object arrays here左右阅读了Phil Haack的博客文章.

我正在简化我的问题,但我基本上使用文本框和模型绑定建议通过使用这样的东西

  <input type="text" name="Deliverables.Index" value="First">
  <input type="text" name="Deliverables[First].Id" value="100">
  <input type="text" name="Deliverables[First].Name" value="Name">
  <input type="text" name="Deliverables[First].MilestoneDate " value="1-Jan-2104">

  <input type="text" name="Deliverables.Index" value="Second">
  <input type="text" name="Deliverables[Second].Id" value="88">
  <input type="text" name="Deliverables[Second].Name" value="Second Name">
  <input type="text" name="Deliverables[Second].MilestoneDate " value="31-Jan-2104">

所以在这种情况下,鉴于上面的文本框,我将在Deliverables数组中有2个条目

我的问题集中在指数的有效值.在上面的情况下,我使用“第一”和“第二”工作正常,但如果我在该字符串中有一个回车项目该项目无法发布.

我的问题是“我真的可以在这里使用任何东西吗?”我想我可以在javascript端删除回车但是开始考虑是否还有其他字符也无法发布.

最佳答案 最好的做法应该是使用数字作为数组的索引,这样可以省去很多麻烦.第二个好的做法是不允许用户输入设置你的密钥,但如果必须这样做,你可以使用替换,如你所提到的
Regular Expressions,以避免应用程序崩溃.

点赞