C# 维护MVC2控制器中的状态
我想在控制器上的方法调用之间保持模型状态。C# 维护MVC2控制器中的状态,c#,.net,asp.net-mvc-2,C#,.net,Asp.net Mvc 2,我想在控制器上的方法调用之间保持模型状态。 可能吗 控制器是在调用其某些方法时创建的,而在被调用的方法完成其执行时销毁的 如果不是。。。如何维护方法调用之间的状态? 如果可能的话。。。怎么写呢 谢谢我认为默认情况下,您应该尝试Restfull方法。如果这是不可行的,那么要么序列化到会话对象,要么存储在单例或类似的东西中 默认情况下,我认为MVC不会在调用之间保持状态。我认为默认情况下,您应该尝试使用Restfull方法。如果这是不可行的,那么要么序列化到会话对象,要么存储在单例或类似的东西中 默
可能吗 控制器是在调用其某些方法时创建的,而在被调用的方法完成其执行时销毁的 如果不是。。。如何维护方法调用之间的状态? 如果可能的话。。。怎么写呢
谢谢我认为默认情况下,您应该尝试Restfull方法。如果这是不可行的,那么要么序列化到会话对象,要么存储在单例或类似的东西中
默认情况下,我认为MVC不会在调用之间保持状态。我认为默认情况下,您应该尝试使用Restfull方法。如果这是不可行的,那么要么序列化到会话对象,要么存储在单例或类似的东西中 默认情况下,我认为MVC不会在调用之间保持状态。是否合适 HTHs,
查尔斯是否合适 HTHs,
Charles即使在MVC中,您也可以访问标准ASP.NET会话。选中。即使在MVC中,您也可以访问标准ASP.NET会话。检查。让我们保持简单!:-) 你问了以下问题: 我希望在控制器上的方法调用之间保持模型状态 可能吗 回答:是的 控制器是在调用其某些方法时创建的,而在被调用的方法完成其执行时销毁的 回答:是的,它不会保留任何状态-它只返回操作生成的结果 如果不是。。。如何维护方法调用之间的状态?如果可能的话。。。怎么写呢 回答: 我们在当前使用ASP.NET MVC2的业务应用程序中遇到了相同的问题,并提出了以下解决方案: 解决方案: 1此应用程序的概念验证包含一些使用全局会话的特殊功能。(请注意,会话保存在Web服务器上) 在ASP.NET MVC中保存和读取会话:
public Action SaveIntoSession()
{
...
Session["SessionData"] = "Something to be stored in session";
...
}
public action ReadFromSession()
{
...
// UNBOXING is required when you're using the session as ASP.NET doesn't know what is stored into the session
string sessionData = (string)Session["SessionData"];
...
}
第二个概念是将每个请求所需的信息保存到数据库的会话表中。(但我不会深入讨论这个问题。查看更多信息-虽然是php,但您可以非常轻松地了解这个概念)
第三种方法是使用Charlino提到的方法。问题是,它只能将状态从一个调用持续到另一个调用。下一个请求将删除存储的所有数据。(TempData主要用于向用户显示错误..)
第四,你也可以使用。不建议与敏感数据一起使用。(查看更多信息)
在一天结束的时候。由您和您的团队决定什么最符合要求 让我们保持简单!:-)
你问了以下问题:
我希望在控制器上的方法调用之间保持模型状态
可能吗
回答:是的
控制器是在调用其某些方法时创建的,而在被调用的方法完成其执行时销毁的
回答:是的,它不会保留任何状态-它只返回操作生成的结果
如果不是。。。如何维护方法调用之间的状态?如果可能的话。。。怎么写呢
回答:
我们在当前使用ASP.NET MVC2的业务应用程序中遇到了相同的问题,并提出了以下解决方案:
解决方案:
1此应用程序的概念验证包含一些使用全局会话的特殊功能。(请注意,会话保存在Web服务器上)
在ASP.NET MVC中保存和读取会话:
public Action SaveIntoSession()
{
...
Session["SessionData"] = "Something to be stored in session";
...
}
public action ReadFromSession()
{
...
// UNBOXING is required when you're using the session as ASP.NET doesn't know what is stored into the session
string sessionData = (string)Session["SessionData"];
...
}
第二个概念是将每个请求所需的信息保存到数据库的会话表中。(但我不会深入讨论这个问题。查看更多信息-虽然是php,但您可以非常轻松地了解这个概念)
第三种方法是使用Charlino提到的方法。问题是,它只能将状态从一个调用持续到另一个调用。下一个请求将删除存储的所有数据。(TempData主要用于向用户显示错误..)
第四,你也可以使用。不建议与敏感数据一起使用。(查看更多信息)
在一天结束的时候。由您和您的团队决定什么最符合要求 TempData只能通过重定向,因此在这种情况下无法工作。问题是需要一种解决方案来维护方法调用之间的状态-我认为TempData可以完成这一点。对当然还有其他的方法,但是如果说在这种情况下它不起作用是有点盲目的,因为存在歧义或问题这意味着来自浏览器的单独调用。TempData只能在重定向后继续,因此在这种情况下无法工作。问题是需要一种解决方案来维护方法调用之间的状态-我认为TempData可以完成这一点。对当然还有其他方法,但如果说这种方法在这种情况下不起作用是有点盲目的,因为存在歧义或问题。很抱歉,我认为“方法调用之间”意味着从浏览器单独调用。
public Action SaveIntoViewData()
{
...
TempData["ViewData"] = "Something to be stored into the page";
...
}
public Action ReadFromViewData()
{
...
string viewData = (string)ViewData["ViewData"];
}