Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 维护MVC2控制器中的状态_C#_.net_Asp.net Mvc 2 - Fatal编程技术网

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"];
}