【发布时间】:2013-12-05 16:30:26
【问题描述】:
我有这样的课:
public class SomeModel
{
public List<Item> Items { get; set; }
public SomeModel()
{
this.Items = new List<Item>();
}
}
在表单发布时可以有可变数量的Items,从零到多。我正在使用 javascript 在提交时动态附加隐藏的输入字段:
$("#container").children(".item").each(function (i) {
form.append('<input type="hidden" name="Items[' + i + '].Id" value="' + $(this).val() + '" />');
});
但是,提交后,我得到了这个错误:
System.NotSupportedException: Collection is read-only.
呈现的语法与我使用@Html.HiddenFor(model => model.Items[i].Id) 得到的语法基本相同,model.Items 是一个数组而不是一个列表,而且效果很好。这里出了什么问题?
动作方法签名:
public ActionResult Post(SomeModel m)
{
【问题讨论】:
-
你能显示Action方法签名吗?
-
哪一行出现错误?
-
@Shyju 在
SomeModel()构造函数被激发出来之后的一段时间(就在它到达Post之前)。 -
也显示你的操作方法
-
@Shyju 是
[HttpGet]还是[HttpPost]一个?无论如何,它在出错之前永远不会到达操作方法。
标签: c# asp.net-mvc-4 razor