首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带多个参数的VaryByParam?

如何使用带多个参数的VaryByParam?
EN

Stack Overflow用户
提问于 2010-08-21 23:18:08
回答 2查看 52K关注 0票数 108

在ASP.NET MVC2中,我使用OutputCacheVaryByParam属性。我只用一个参数就能很好地工作,但是当我在方法上有多个参数时,正确的语法是什么?

代码语言:javascript
复制
[OutputCache(Duration=30, VaryByParam = "customerId"]
public ActionResult Index(int customerId)
{
//I've got this one under control, since it only has one parameter
}

[OutputCache(Duration=30, VaryByParam = "customerId"]
public ActionResult Index(int customerId, int languageId)
{
//What is the correct syntax for VaryByParam now that I have a second parameter?
}

如何让它使用这两个参数来缓存页面?我要输入add the attribute两次吗?或者写"customerId,languageId“作为值??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-21 23:33:11

VaryByParam的有效值为以下值之一:

  • 文本字符串* (星号),它随操作方法的所有参数而变化。
  • 文本字符串none (不区分大小写),它随操作方法的任何参数而变化。
  • 包含要变化的参数的以分号分隔的名称的字符串。

在您的例子中,您需要第一个选项:

代码语言:javascript
复制
[OutputCache(Duration = 30, VaryByParam = "*")]
public ActionResult Index(int customerId, int languageId)
{
}

然而,如果你有一些你想要改变的参数和一些你不想改变的参数,那么你可以使用第三个选项:

代码语言:javascript
复制
[OutputCache(Duration = 30, VaryByParam = "customerId;languageId")] // foo is omitted
public ActionResult Index(int customerId, int languageId, int foo)
{
}

Reference.

票数 207
EN

Stack Overflow用户

发布于 2019-02-08 17:27:25

还可以使用*包含所有参数

代码语言:javascript
复制
 [OutputCache(Duration =9234556,VaryByParam = "*")]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3538012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档