ASP.NET MVC3 – 将项动态添加到对象上的数组

我正在一个用户应该能够填写动态扩展表单的网站上工作。

我会添加一个带有灰色字段的行,当用户将焦点放在其中一个字段时,以下javascript将添加该行

    $('.unSelected').focusin(function () { if ($(this).hasClass('unSelected')) { var row = $(this).clone(true); $(this).after(row); $(this).removeClass('unSelected'); } }); 

但是如何使用razor和asp.net这样做,因为对象不会被自动生成呢?

在ASP.NET MVC中,如果您有一个类似于的模型类:

 public class PageModel { public Collection RowItems { get; set; } } public class RowItem { public int Id {get;set;} public string MoreFields { get; set; } } 

你的javascript添加如下行:

  

MVC中的默认模型绑定器应该在发布时解决它

 [HttpPost] public ActionResult YourPostActionHere(PageModel model) { var count = model.RowItems.Count(); etc... } 

您可以以相同的方式执行此操作,因为在上面的代码示例中,您使用的是jQuery,当然也支持ASP.NET MVC。

也许我不了解你,但我在上面的代码示例中没有看到任何PHP代码。

你想要做的是一个不依赖于PHP或Asp.Net的客户端脚本,因此编写代码并不重要。 这应该也适用于Asp.Net mvc。

如果要收集新的控制数据以在服务器端使用它,可以通过JavaScript收集它并将其分配到可在服务器端访问的隐藏字段中。 您可以通过将值保存在一个字符串中并使用任何分隔符分隔来使用一个隐藏字段。

你可能只是错过了脚本标签吗? 像其他人说的那样,javascript与平台无关。