2016-08-01 18 views
5

Mam prosty ViewComponent działa poprawnie w przeglądarce Chrome i Firefox ale nie działają w przeglądarce krawędzi \ IE 11.Rendering ViewComponent z AJAX nie działają w EDGE/IE11

Element pokazuje czas (tylko na przykład).

Wyświetlany jest czas Chrome i czas firefox.

Przeglądarka krawędzi \ IE 11, czas wyświetlany jest tylko przy pierwszym uruchomieniu strony i pozostaje, więc czas jest "zamrożony".

ale

podczas otwierania narzędzia programistyczne przeglądarka Krawędź jak w IE 11, komponent zacznie prawidłowo działać i wyświetlany jest aktualny czas (tak jak innych przeglądarek)

i kiedy zamknij narzędzia programistyczne F12, komponent przestaje działać (czas "zamrożony").

I powtórzył - F12 otwarty składnik działa, F12 Close komponent przestaje działać.

Czy brakuje mi tutaj czegoś?

Mocowanie prostego kodu procesu dziękuję


HomeController:

public IActionResult GetTime() 
{ 
    return ViewComponent("GetTime"); 
    //// var time = DateTime.Now.ToString("h:mm:ss"); 
    //// return Content($"The current time is {time}"); 
} 

GetTimeViewComponent:

public class GetTimeViewComponent : ViewComponent 
{ 

    public IViewComponentResult Invoke() 
    { 

    var model = new string[] 
    { 
    "Hello", DateTime.Now.ToString("h:mm:ss") , "the", "view", "component." 
    }; 
    return View("Default", model); 

    } 

} 

domyślna:

@model string[] 
<ul> 
    @foreach (var item in Model) 
    { 
     <li class="text-danger">@item</li> 
     } 
</ul> 

**Index** 

<div id="myComponentContainer">@await Component.InvokeAsync("GetTime") </div> 

**Js/Ajax** 

$(function() { 

    var refreshComponent = function() { 
    $.get("Home/GetTime", function (data) { 
    $("#myComponentContainer").html(data); 
    }); 
}; 
    $(function() { window.setInterval(refreshComponent, 1000); }); 

}); 

Odpowiedz

1

spróbuj ustawić cache false w ajaxSetup

$.ajaxSetup({ cache: false }); 

Albo użyć

$.ajax({ cache: false, //other options... });