Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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
Ajax mvc3 Viewbag是否存在丢失或过期值的危险_Ajax_Asp.net Mvc 3_Viewbag - Fatal编程技术网

Ajax mvc3 Viewbag是否存在丢失或过期值的危险

Ajax mvc3 Viewbag是否存在丢失或过期值的危险,ajax,asp.net-mvc-3,viewbag,Ajax,Asp.net Mvc 3,Viewbag,我使用Viewbags作为一种在我的Ajax.forms中的文本框中保存动态值的方法;viewbags是否会像会话变量一样过期或丢失其值?这是我的简单表格 @using (Ajax.BeginForm("mydownloads", "mycontroller", null, new AjaxOptions { UpdateTargetId = "globe", InsertionMode = InsertionMode.Replace, HttpMethod = "Post" })) { @Ht

我使用Viewbags作为一种在我的Ajax.forms中的文本框中保存动态值的方法;viewbags是否会像会话变量一样过期或丢失其值?这是我的简单表格

@using (Ajax.BeginForm("mydownloads", "mycontroller", null, new AjaxOptions
{
UpdateTargetId = "globe",
InsertionMode = InsertionMode.Replace,
HttpMethod = "Post"
}))
{
@Html.TextBox("firstname", (object)@ViewBag.firstname)
@Html.TextBox("lastname", (object)@ViewBag.lastname)
<input type="search" id="post" />
}
@使用(Ajax.beginnform(“mydownloads”,“mycontroller”),空,新的AjaxOptions
{
UpdateTargetId=“globe”,
InsertionMode=InsertionMode.Replace,
HttpMethod=“Post”
}))
{
@Html.TextBox(“firstname”,(object)@ViewBag.firstname)
@Html.TextBox(“lastname”,(object)@ViewBag.lastname)
}

正如您所看到的,这确实是提交的,但它是通过Ajax完成的。我对会话变量有过不好的体验,因为它们往往会在没有警告的情况下过期。ViewBag会发生类似的情况吗

不,没有丢失ViewBag中存储的值的危险。控制器操作写入ViewBag的任何值都绝对保证在相应视图中可用。ViewBag是一个短的活动对象存储,用于将值从控制器动作传输到视图


就我个人而言,我发现使用它是非常糟糕的做法,因为它是弱类型的。每当我需要将一些信息从控制器操作传递到视图时,我总是喜欢使用强类型视图模型。

感谢您的回复,我明白您的意思,我将改为强类型视图。@Darin在ASP.NET MVC中开发时,使用viewmodels应该成为一项强制性技术:)我必须使用一个不使用它们的MVC项目,相信我,这是一个真正的PITA。