【发布时间】:2017-05-11 00:18:30
【问题描述】:
我有一个表单,我想将输入字段值存储到会话变量中。该表单用于创建新用户:管理员用户将输入新用户的用户名,转到下一页添加其他信息,然后创建用户。所以,我想将他们放在第一页的信息存储到会话变量中,以便以后使用。问题是我遇到了序列化异常。
这是我从第一页到第二页时使用的 ajax:
function holdUserData() {
//pass in username and a list of club IDs
var data = {
username: $('#tbUsername').val(),
clubs: this.clubs
};
$.ajax({
type: "POST",
url: '/Users/GoManageClub', //store in GoManageClub controller
data: data,
success: function (data) {
//redirect to ManageClubAccess controller when done
window.location = '/Users/ManagClubAccess';
}
})
}
还有我的GoManageClub 控制器,将数据存储到会话:
[HttpPost]
public ActionResult GoManagePolicy(string username, List<ClubVM> clubs)
{
Session["Username"] = username;
Session["Clubs"] = clubs;
return this.Json(new { success = true });
}
当我只存储用户名字符串时,没有问题,变量存储成功。但是当我存储List<ClubVM> 时,我得到了序列化异常:
Type 'myOrganization.ClubVM' in Assembly 'myorg, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable
我的ClubVM:
public class ClubVM
{
public int ID { get; set; }
/* ... */
}
我应该怎么做才能保存List<ClubVM> clubs?
【问题讨论】:
标签: c# ajax asp.net-mvc