1

我创建了一个网站(它是 poco 对象)模型绑定器,用于检查会话: public class WebsitesModelBinder:IModelBinder { private const string websiteSessionName = "SelectedSite";

    #region IModelBinder Members

    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        if (bindingContext.Model != null)
            throw new InvalidOperationException("Invalid");

        Website site = (Website)controllerContext.HttpContext.Session[websitesSessionName];
        if (site == null)
        {
            site = new Website();
            controllerContext.HttpContext.Session[websitesSessionName] = site;
        }
        return site;
    }

    #endregion
}

在 global.asax 文件中,我为 typeof 网站注册了模型绑定器。在我的控制器操作中,该操作将网站作为参数获取并对其进行更新,例如: public ActionResult Websites(Website SelectedSite) {
var sites = db.Websites.ToList(); if (SelectedSite.ID == 0) SelectedSite = 站点[0]; ViewData["Selectedsite"] = SelectedSite;

        return View(sites);
    }

但是模型活页夹永远不会更新会话有什么想法吗?

4

1 回答 1

0

我知道这已经过时了,可能不再有用了,但是我在自己的搜索中遇到了这个问题,并想从我所做的事情中得到答案。如果您删除引发异常的 if 子句,那么这应该可以工作。您正在返回一个参考,所以这应该适当更新。希望这至少对未来有所帮助

于 2011-11-09T22:26:03.350 回答