Ras*_*mus 4 asp.net-mvc jquery json
我知道这个问题已经提到了如之前在这里
但解决方案似乎不适合我的问题.
这是我的HTML.行数是可变的
<table id="workPlanTable">
<tr>
<th>
Begin
</th>
<th>
End
</th>
</tr>
<tr itemId="1">
<td><input class="begin" id="begin_1" name="begin_1" type="text" value="5:30" /></td>
<td><input class="end" id="end_1" name="end_1" type="text" value="11:30" /></td>
</tr>
<tr itemId="3">
<td><input class="begin" id="begin_3" name="begin_3" type="text" value="5:30" /></td>
<td><input class="end" id="end_3" name="end_3" type="text" value="7:30" /></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
js构建一个对象数组并将它们发布到控制方法中
<script type="text/javascript">
$(function() {
submitForm = function() {
var items = new Array();
$("#workPlanTable tr").each(function(i) {
var end = $(this).find(".end").val();
var begin = $(this).find(".begin").val();
var item = {
"Begin": begin,
"End": end
};
items.push(item);
}
);
var postData = { myItems: items };
$.ajax({
url: '~/WorkPlan/AjaxUpdate',
type: 'POST',
dataType: 'json',
data: postData,
contentType: 'application/json; charset=utf-8',
success: function(result) {
alert(result.Result);
}
});
}
}
)
</script>
Run Code Online (Sandbox Code Playgroud)
每行代表一个WorkPlanItem.我的目标是将它们全部发布到我的控制器以更新它们.
我似乎无法在我的控制器方法(AjaxUpdate)中找到如何访问数组的方法
您可以将表单序列化为Vikas发布,或者您可以使用stringify 函数,如果您更喜欢浏览页面(正如您当前所做的那样)并使用该postData数组.
在控制器上,您需要处理json字符串.您可以使用System.Web.Script.Serialization.JavaScriptSerializer 该类对其进行反序列化.如果您有一个映射到您传递的数据的对象,则可以使用Deserialize方法.如果不这样做,您仍然可以使用DeserializeObject,但是这会为您提供一个Dictionary<string, string>集合,您必须通过该集合来获取数据.不完全有趣(相信我),但它的确有效.
| 归档时间: |
|
| 查看次数: |
9727 次 |
| 最近记录: |