在会话中逐个保存数据并将它们完全保存在数据库中

时间:2013-11-26 11:49:28

标签: c# asp.net-mvc session

我发送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);
        }

1 个答案:

答案 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);
}