MVC将值设置为会话中对象的integer属性

本文关键字:对象 integer 属性 会话 设置 MVC | 更新日期: 2023-09-27 18:00:15

我有客户类

public class Customer
{
    public string Name { get; set; }
    public string Surname{ get; set; }
    public string Email { get; set; }
    public string MobilePhone { get; set; }
    public int Type { get; set; }
}

在HomeController的Index方法中,我创建了Customer的一个实例,并将值设置为属性。然后我将其存储在会话中,以在同一控制器中的Index(HttpPost)方法中获取对象。在Index(HttpPost)方法中,我可以正确地获取除"Type"属性之外的所有属性值。当我从会话中获取Customer对象时,此对象的"Type"属性始终等于0。

public ActionResult Index(string id, string co)
{
    Customer cust = new Customer();
    cust.Name = "customer";
    cust.Surname = "test";
    cust.EMail = "test@test.com";
    cust.Type=2;
    Session["customer"] = cust;
    return View(customer);
}
[HttpPost]
public ActionResult Index()
{
    Customer customer = new Customer();
    if (Session["customer"] != null)
    {
        customer = (Customer)Session["customer"];
    }
    //customer.Type is equal 0
}

原因是什么?如何避免?

感谢您提前回复

MVC将值设置为会话中对象的integer属性

您的代码看起来不错(除了cust.EMail->cust.Emailreturn View(customer)->return View(cust)中的拼写错误)我甚至将其添加到了我的项目中,它运行得很好。。。