ฉันจะใช้ VaryByParam กับพารามิเตอร์หลายตัวได้อย่างไร


103

ใน ASP.NET MVC2 ฉันใช้OutputCacheและVaryByParamแอตทริบิวต์ ฉันทำให้มันใช้งานได้ดีกับพารามิเตอร์เดียว แต่ไวยากรณ์ที่ถูกต้องคืออะไรเมื่อฉันมีพารามิเตอร์หลายตัวในเมธอด

[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 แอตทริบิวต์สองครั้งหรือไม่ หรือเขียน "customerId, languageId" เป็นค่า ??

คำตอบ:


200

คุณสามารถใช้ * สำหรับพารามิเตอร์ทั้งหมดหรือรายการที่คั่นด้วยอัฒภาค ( VaryByParam = "customerId;languageId")

นอกจากนี้คุณยังสามารถใช้ไม่มีก็ได้หากคุณไม่ต้องการให้แคชเวอร์ชันต่างๆ ...

นี่คือการเขียนที่ดีขึ้นโดยเฉพาะสำหรับ MVC


1

คุณยังสามารถใช้*เพื่อรวมพารามิเตอร์ทั้งหมด

 [OutputCache(Duration =9234556,VaryByParam = "*")]

1
ยินดีต้อนรับสู่ Stack Overflow แม้ว่ารหัสนี้อาจตอบคำถาม แต่การให้บริบทเพิ่มเติมเกี่ยวกับสาเหตุและ / หรือวิธีที่รหัสนี้ตอบคำถามช่วยเพิ่มคุณค่าในระยะยาว How to Answer
Elletlar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.