[英]model binding html:asp not working
我创建了一个动态textarea
的组,该组通过使用JS
动态添加到DOM
。 那些textarea
,我确实希望它们在controller
。 我在那个代码中的model.actionLis
t中收到null
值:
这是生成的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开始,然后像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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.