如果用户可以通过动态地添加Detail1
,Detail2
和Comment
,它们定义为模型,然后添加到动作像如下:
public class Detail1 {
public string Content {get; set;}
}
public class Detail2 {
public string Content {get; set;}
}
public class Comment {
public string Content {get; set;}
}
[HttpPost]
public ActionResult Create(string EmpName, string EmpCode, List<Detail1> detail1s, List<Detail2> detail2s, List<Comment> comments)
{
//save operations...
}
,并查看:
@using (Html.BeginForm())
{
// other static fields..
<input type="button" value="Add Detail1" onclick="AddDetail1();" />
<input type="button" value="Add Detail2" onclick="AddDetail2();" />
<input type="button" value="Add Comment" onclick="AddComment();" />
<table id="LeftDetails1">
<tr>
<td>
Detail 1
</td>
</tr>
</table>
<table id="RightDetails2">
<tr>
<td>
Detail 2
</td>
</tr>
</table>
<table id="BottomComments">
<tr>
<td>
Comments
</td>
</tr>
</table>
}
<script type="text/javascript">
function AddDetail1() {
var rowDetail1 = $('#LeftDetails1 tr').length;
var index = rowDetail1 + 1;
$('#LeftDetails1').append("<tr><td><input type='hidden' name='detail1s.Index' value='" + index + "' /><input type='text' name='detail1s[" + index + "].Content' /></td></tr>");
}
function AddDetail2() {
var rowDetail2 = $('#RightDetails2 tr').length;
var index = rowDetail2 + 1;
$('#RightDetails2').append("<tr><td><input type='hidden' name='detail2s.Index' value='" + index + "' /><input type='text' name='detail2s[" + index + "].Content' /></td></tr>");
}
function AddComment() {
var rowComment = $('#BottomComments tr').length;
var index = rowComment + 1;
$('#BottomComments').append("<tr><td><input type='hidden' name='comments.Index' value='" + index + "' /><input type='text' name='comments[" + index + "].Content' /></td></tr>");
}
</script>
而且你可以给值EmpId
到员工保存后的3个模型。首先保存员工,然后你会得到它的Id
,然后给012h,Detail2
和Comment
模型并重新保存的值。
希望这会奏效。
我们可以使用JSON数据发布方法吗? – Sukhjeevan
我可以发送动态添加的值列表,但如何将这些值与他们的ID映射到数据库表中,因为我只发送值而不是每个值的id。 即如何确定我要更新数据库表中正确的行? – Sukhjeevan
我试过这个,但是当我动态添加texbox并发布到控制器操作时,我只获得一个值,而不是我动态添加的其他值 – Sukhjeevan