如何在Kendo UI数据源中禁用"读取"请求缓存

ZEN*_*NIT 8 asp.net-mvc-4 kendo-ui

我在MVC4应用程序中使用ASP.NET MVC Wrapper.

除了一个特定问题之外,一切正常:我为Kendo UI Grid定义了一个数据源,当视图加载时,正在按预期调用读取操作.

但是,当页面重新加载时,"读取"请求获得304结果的响应.

如何通过数据源配置禁用缓存?

dpb*_*dpb 14

您可以将Kendo dataSource中的'cache'属性设置为false,这显然(注意:我没有测试过)将强制在每个请求上新获取所请求的页面.

将cache设置为false会在请求中附加"_ = [TIMESTAMP]"参数,如果需要,可以在服务器/控制器端解析该参数以避免服务器端缓存操作.

另请注意,您可以为每个Kendo传输操作指定缓存行为(即,它可以处于CRUD操作级别或整个传输级别).

见这里:http://docs.kendoui.c​​om/api/framework/datasource#configuration-transport.read.cache-Boolean

码:

transport: {
    read: {
        cache: false
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 9

.Read(read => read.Action("Action","Controller",new {area ="Area"}).Type(HttpVerbs.Post))


Vla*_*den 5

您可以尝试装饰服务器端控制器的操作,以加载视图

[OutputCache(Duration = 0, NoStore = true)]
Run Code Online (Sandbox Code Playgroud)

属性,例如

public class OrdersController : Controller
{
    [httpGet]
    [OutputCache(NoStore = true, Duration = 0)]
    public ActionResult Orders(string userId)
    {
        // your code
        return View(viewModel);
    }
}
Run Code Online (Sandbox Code Playgroud)

NoStore-一个布尔值,该值确定是否防止敏感信息的二次存储 Duration-页面或用户控件的缓存时间(以秒为单位)。在页面或用户控件上设置此属性可建立来自对象的HTTP响应的过期策略,并将自动缓存页面或用户控件的输出。


Sha*_*Wet 0

无法通过数据源配置进行控制器。您必须将属性应用于控制器上的 Read 方法以防止缓存。

另一种方法是将 [HttpPost] 属性应用于您的控制器方法。然后将数据源配置为不使用 GET 方法,在这种情况下,它将默认使用 POST 方法。