我发送ajax请求以在会话
中以json格式保存模型<script type="text/javascript">
$(function () {
$('#addSubject').click(function () {
var mydata = {
"SubjectId": $('#subjectid').val(),
"ObtainedGpa": $('#obtainedgpa').val(),
"SubjectTypeId": $('#subjecttypeid').val()
};
var dataToPost = JSON.stringify(mydata);
$.ajax({
type: "Post",
url: "/PreviousExamInfo/SaveSubjectInfo",
contentType: "application/json;charset=utf-8",
data: dataToPost,
dataType: "json",
});
})
});
</script>
这是成功完成的。但是在我的操作中我必须将它们保存在Session中。方法就像“单击ADD按钮并在会话中保存值,再次单击ADD按钮并将新值存储在会话中使用先前存储的值“。单击提交按钮后,会话中的所有值都将存储在数据库中。我怎么知道会话按照我的预期工作?因为我使用
var mySession = Session [“myItem”] 这只显示新值而不是我之前添加的值。我应该使用Session吗?或者还有什么我可以使用的吗?
[HttpPost]
public JsonResult SaveSubjectInfo(PreviousExamSubject previousExamSubject)
{
List<PreviousExamSubject> list=new List<PreviousExamSubject>();
list.Add(previousExamSubject);
Session["myitem"] = list;
return Json(JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:0)
代码总是用新列表替换现有的Session [“myitem”]。要追加,你可以这样做:
[HttpPost]
public JsonResult SaveSubjectInfo(PreviousExamSubject previousExamSubject)
{
List<PreviousExamSubject> list= (List<PreviousExamSubject>) Session["myitem"] ?? new List<PreviousExamSubject>();
list.Add(previousExamSubject);
Session["myitem"] = list;
return Json(JsonRequestBehavior.AllowGet);
}