- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在某些情况下,我需要在 Controller 操作之间传递一个值。
当将 returnUrl 从 View 传递到所有嵌套 View 时。在里面查看我有
@{
TempData["returnURL"] = Request.Url.AbsoluteUri;
}
然后以类似的方式访问它(在我的真实版本中我检查 key 是否在 TempData 中以及 returnURL 是否真实网址):
return Redirect(TempData["returnURL"].ToString());
如果它需要在第一页更改之后继续(即搜索page -> Edit page -> Edit Section page)我又来加了
TempData["returnURL"] = TempData["returnURL"];
当我需要通过一个 Controller Action 传递一个值时查看由 ajax 调用的另一个 Controller 操作,例如这里:
public ViewResult Index(FormCollection form)
{
var model = new GridColumnChooserViewModel();
//Select deleted/not deleted rows
if (form.HasKeys())
model.ShowRows = (form["deletedDropDown"] == null) ?
"Active" :
GetOptionByName(form["deletedDropDown"]);
TempData["ShowRows"] = model.ShowRows;
...
}
然后在我的另一个调用 ajax 的 Action Controller 中访问它:
public JsonResult GetData()
{
//Select deleted/not deleted rows
var showRows = (TempData.ContainsKey("ShowRows") && TempData["ShowRows"] == null) ?
"Active" :
GetOptionByName(TempData["ShowRows"].ToString());
//refresh tempdata showrows so it is there for next call
TempData["ShowRows"] = model.ShowRows;
return this.GetDataSource(showRows);
}
我的问题是,这真的是不好的做法吗?根据我对它的理解,我本质上是在像 session cookie 一样使用 TempData。有没有更好的方法来做到这一点,比如使用实际的 cookie?
最佳答案
是的,我会说这通常是不好的做法。虽然 ViewData 字典方法快速且相当容易实现,但它可能会导致拼写错误和编译时未发现的错误。另一种方法是使用 ViewModel 模式,它允许您为需要在其中公开值或内容的特定 View 使用强类型类。最终为您提供类型安全和编译时检查以及智能感知。
我的第一选择是使用 View 模型。如果这不合适,那么使用 session 状态可能就很好。
关于c# - 使用 TempData 在 Controller 操作之间传递细节是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604778/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!