2014-11-21 61 views
0

我制作了一个动态的textarea的组,使用JS动态添加到DOM中。 那textarea的,我真的希望他们在controller。 我接收在model.actionLisnull值与该代码:model binding html:asp not working

这里是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; } 
} 

有什么不对?

在此先感谢!

回答

2

所有索引首先从其次开始使用它像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> 
+0

我已经有这个想法,但我只是foirget试试这个..等.. – clement 2014-11-21 13:19:44

+0

宾果!我很笨:-)谢谢! – clement 2014-11-21 13:19:59

+0

很高兴帮助。 – 2014-11-21 13:22:32