如果用戶可以通過動態地添加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