问题标签 [tempdata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-4 - MVC4使用ActionLink和TempData将数据从Controller中的文本框发送到View
有没有办法利用 TempData 和 ActionLink 将数据从视图传递到控制器。我有一个具有客户端验证的视图,我需要在不使用提交按钮的情况下从页面上的文本框中更新下拉列表。当使用两个提交类型按钮时,客户端验证会标记所有尚未填写的字段。本质上,我希望能够将用户定义的类别添加到下拉列表中,而不必只为文本框跳转到不同的视图和提交按钮。
我不确定我是否可以做这样的事情:
虽然我无法让它工作......
风景:
控制器部分:
任何建议将不胜感激,无论是如何使这项工作或更优雅一点。
asp.net-mvc-3 - Session / TempData 的长期使用和冲突
我有一个 MVC3 Web 应用程序,它使用默认的“进程中”会话。我有 PRG 模式 - 如果我的模型状态无效,则在回发时,我将模型存储在 TempData 中并重定向到原始 get 操作。在获取操作中,我获取模型数据(如果存在)并发送到视图。我相信这是 MVC 的基本方面之一。
我了解到后台的 TempData 是一个会话变量,用于 PRG 转换。我需要知道的是是否有可能发生冲突或交叉引用 - 如果我在两个页面中使用 TempData["model"] 之类的东西并同时访问这些页面。是否会覆盖 TempData["model"] 中的公共数据,或者如果我在两个不同的页面中使用相同的临时数据名称是否安全。
它是否与 Session["model"] 类型的数据冲突?我正面临一些意外的会话数据损坏 - 可能是由于我的内部代码重置了会话数据或其他原因。会话数据是否有可能部分损坏?我的意思是 Session["data1"] 没问题,但 Session["data2"] 不见了?
我的用户经常长时间使用网络应用程序导致会话超时。我为会话尝试了 ASP.Net 会话状态服务,但这导致了性能问题,因为我在会话中存储了一些重对象(通过序列化)。所以最后我回到了进程模式下的原始默认值。
如果您有任何类似的经历,请分享。
asp.net-mvc - Is it good practice to pass TempData and/or ViewData to services?
In trying to reduce the size of my MVC controllers, I am refactoring a lot of logic out into services (though this same issue would apply if it was being factored into models). I'm often finding that I was directly setting ViewData
and/or TempData
with information I wanted to be displayed to the user, like:
Of course, as soon as you move into a service class, you lose direct access to ViewData
, TempData
, and methods like View()
or RedirectToAction()
, so I'm trying to figure out the best practice for dealing with it. Two solutions come to mind:
Create a class containing various pieces of information about what the controller should do, to be passed back from the services, like:
/li>Try and allow the service methods to have direct access to things like
ViewData
andTempData
, eg.:... and then in the controller:
/li>
For number 1, the controller would have more logic to do in looking at the ResponseInfo
object and determining whether to redirect, display a view, plugging the error or info message into TempData
or ViewData
, etc. Number 2 would pretty much allow a one-liner controller, but you're making the service very aware of controller-specific stuff. However, the service is always going to be closely tied in with the controller anyway so is this a problem? Would 1 or 2 be best practice, or something else I haven't listed?
javascript - 在 mvc4 中的 javascript 中访问 tempdata
我正在尝试在 Javascript 中访问 TempData。但得到空值。我正在进行 ajax 调用以更新记录,并且我想显示记录更新成功消息。这将来自控制器的 UpdateOperation 操作。但目前它将显示空值。我还检查了 Firebug,它显示如下:
这是我的控制器代码
在我看来
javascript - MVC razor 如何在客户端管理 TempData 值?
目前我已经开始使用 MVC 4 Razor。我想知道“如果在 javascript 中分配它的值,在哪里处理 TempData?”
例如。
现在在这种情况下,我将removeTempDataValue()
在单击一个 div 时调用函数。所以我想知道 MVC4 razor 将如何设置它TempData
的值。
那么它将如何管理TempData
价值客户端呢?
c# - 在 ActionFilterAttribute 中设置 TempData
我有一个自定义操作过滤器,它在 内部OnActionExecuting
,根据某些条件,注销用户并将他们重定向到网站的主页。重定向部分的(剥离)代码如下
如上所述,我也在设置一个 tempData 消息。因为用户已经注销,所以当他们点击主页时,该[Authorize]
属性会将他们重定向到登录 GET 页面。在登录视图中,我正在显示来自 tempData 的任何消息。但是在这种情况下 tempData 是空的。
这与我的登录 POST 的工作方式非常相似(如果无效,它会重定向到主页,然后重定向到登录并显示登录帖子中设置的 tempData 消息)。这段代码可以在下面看到
我这样做的原因,而不是专门重定向到登录页面是因为这段代码分布在许多站点上,所以我们不知道登录 GET url 是什么。
有没有人知道为什么这适用于登录 POST 但不适用于 ActionFilter 重定向?
编辑:
如果我在自定义操作过滤器中删除注销调用,则 tempData 仍设置在 Home 操作中 - 但这并不能解释为什么它适用于 Login POST 但不适用于操作过滤器?
asp.net-mvc - 如何在 MVC 应用程序中跟踪 TempData?
我知道我们可以通过在配置中启用跟踪并在运行会话中访问“trace.axd”页面来跟踪 ASP.NET 应用程序中的会话数据。现在我想在我的 ASP.NET MVC 应用程序中跟踪 TempData,我尝试了“trace.axd”,但“会话状态”部分显示为空,尽管会话中有对象。我相信 TempData 在其底层架构中使用 Session,所以它应该显示在 trace.axd 中,但是由于它没有显示,我们如何跟踪 tempdata?
asp.net-mvc - Chrome 中的 TempData 问题,但在 IE 和 Firefox 中运行良好
以下是我的应用程序中的确切场景:
- 我在控制器操作中生成 GUID。
- GUID 存储在 TempData 中。
- 我将 GUID 与从该控制器操作打开的剃刀视图 (MyView.cshtml) 中的 ViewModel 一起传递。
视图具有与 GUID 绑定的隐藏字段。
/li>还有另一个控制器操作返回一个 Json 结果,其中包含 TempData 中的 GUID 值。
/li>我在 MyView.cshtml 中编写了以下 jquery
$.get('@Url.Action("GetGuid", "Controller")', 函数(结果){
问题是,它在 IE 和 Firefox 中运行良好,但在 TempData 和 HiddenField 中总是有不同的 GUID,所以每次都会给出“无效标识符”的消息
可能是什么原因?为什么这种行为在 Chrome 中会有所不同?
c# - int 是 null 但 TempData 不是?
我需要在两个操作结果之间传递一些数据,所以我想我会尝试TempData
(我真的是 MVC 新手,所以请耐心等待)。这是我尝试过的:
现在临时数据已存储。并检索它:
现在问题来了;companies.BolagsID
有一个值,但test
始终为空。为什么?我该如何解决?
编辑:
我注意到一件相当奇怪的事情;在尝试 Darin Dimitrovs 的建议时,也可能在我尝试时,如果我只在返回空值的行上放置一个断点,它直到下一行才会中断。好像该行已被注释掉并且根本不执行。欢迎来到暮光之城。
编辑2:
取2:
和:
我仍然得到“当前上下文中不存在测试”。
编辑3:
拿2个工作正常。我的变量null
在声明时是因为我从未在任何地方使用过它们。我想我会一步一步来,但显然,在某些情况下,你必须采取几个步骤才能看到它们中的任何一个都有效。
经验教训:一定要使用声明的变量,否则它们将是null
.
asp.net-mvc - 如何避免使用 TempData
我是 asp.net mvc 的新手,所以请多多包涵。
当我重定向到另一个 Action 并且我不想用信息“弄脏”URL 时,我正在使用 TempData。例如:
到目前为止一切顺利,用户获得了一个简单而无辜的网页,其中包含一些包含他的用户名的消息。但是如果用户点击“刷新”按钮,那么他会看到“错误”视图,因为 TempDate 不可用。我希望能够使用查询字符串中未显示的信息重定向到操作,并且如果用户点击刷新按钮,那么他将获得相同的页面。任何想法如何做到这一点?(无会话)
谢谢你。