我创建了一个动态textarea
组,使用DOM
动态添加JS
组。
那些textarea
,我希望它们在controller
中。
我使用该代码在null
t中收到model.actionLis
个值:
以下是生成的HTML
:
<div class="input_fields_wrap">
<div><textarea class="form-control text-box multi-line" name="model.actionList[1].probleme"></textarea> <textarea class="form-control text-box multi-line" name="model.actionList[1].action"></textarea></div>
<div><textarea class="form-control text-box multi-line" name="model.actionList[2].probleme"></textarea> <textarea class="form-control text-box multi-line" name="model.actionList[2].action"></textarea></div>
<div><textarea class="form-control text-box multi-line" name="model.actionList[3].probleme"></textarea><textarea class="form-control text-box multi-line" name="model.actionList[3].action"></textarea></div>
</div>
通过此JS
:
$(wrapper).append('<div>Probleme: <textarea class="form-control text-box multi-line" name="model.actionList[' + x + '].probleme"></textarea> Action: <textarea class="form-control text-box multi-line" name="model.actionList[' + x + '].action"></textarea>@*<a href="#" class="remove_field">Remove</a>*@</div>'); //add input box
服务器端,这是controller
:
public ActionResult Create(AuditViewModel model)
{...}
这是有趣的着名Viewmodel
部分:
public class AuditViewModel
{public List<Actions> actionList { get; set; }}
最后,这是Action
类:
public class Actions
{
public string probleme { get; set; }
public string action { get; set; }
}
有什么问题?
提前致谢!
答案 0 :(得分:2)
首先,索引从 0 开始,然后像actionList[index].SomePeoperty
一样使用它,因为actionList是您Model
的属性:
当你写:
@model SomeModel
@Html.TextAreaFor(x=>x.SomeProperty)
它呈现为:
<textarea name="SomeProperty" id="SomeProperty"></textarea>
它不会呈现为:
<textarea name="model.SomeProperty" id="model.SomeProperty"></textarea>
所以试试如下:
<div>
<textarea class="form-control text-box multi-line" name="actionList[0].probleme"></textarea>
<textarea class="form-control text-box multi-line" name="actionList[0].action">
</textarea>
</div>
<div>
<textarea class="form-control text-box multi-line" name="actionList[1].probleme"></textarea>
<textarea class="form-control text-box multi-line" name="actionList[1]action">
</textarea>
</div>
<div>
<textarea class="form-control text-box multi-line" name="actionList[2].probleme"></textarea>
<textarea class="form-control text-box multi-line" name="actionList[2].action">
</textarea>
</div>