Widok nie jest refreshowany

0

Witam,

Mam taki problem:

    public ActionResult Index(int? sortedTag)
    {
        QuotesViewModel quotesViewModel = new QuotesViewModel();
        using (var db = DbHelper.GetConnection())
        {
            quotesViewModel.Quotes = db.Query<QuotesModel>("SELECT * FROM tblQuotes ORDER BY Id DESC").ToList();

            if (sortedTag != null)
                quotesViewModel.Quotes = db.Query<QuotesModel>($"SELECT * FROM tblQuotes WHERE Tag = {sortedTag} ORDER BY Id DESC").ToList();

        }

        return View("Index", quotesViewModel);
    }

który wywołuję sobie onchange eventem na drop down liście

function filterByTag() {
var selected = $('#ddlTag').val();
var pathname = window.location.pathname;

if (pathname == '/') {
    $.ajax({
        url: 'Quotes/Index',
        type: 'GET',
        data: { sortedTag: selected },
        success: function () { }
    });
};

Nie do końca rozumiem dlaczego widok się nie refreshuje i nie wyświetla pofiltrowanej listy. Debugowałem kod i return View("Index", quotesViewModel); model zwraca pofiltrowaną liczbę rekordów.Pomocy

Dziękuję i pozdrawiam

1

do success masz podpiętą funkcje, która nic nie robi. Z tego co pamiętam do powinna być funkcja z parametrem, i ten parametr to jest twój html z akcji. Następnie wrzucasz to za pomocą jquery do jakiegoś np diva

0

Hej,

No tak to jest jedna z opcji natomiast nie o to mi chodziło. To co zaproponowałeś jest ok, ale wymaga wyczyszczenia np. diva i umieszczenia w nim zwróconej zawartości. To co ja chciałem osiągnąć polega na tym, ze wywoływany jest kontroler który zwraca View z nowym modelem i strona jest odświeżona, a dane są wyświetlone z tego nowego modelu. U mnie jest taki problem, ze ciągle wyświetlają się dane ze starego modelu, a dostęp do nowych danych mam z poziomu developer toola w przeglądarce, zakładka network i tam jest link np. "?sortedTag=1". Po dwukliku na ten link przeglądarka otwiera kartę z poprawnie wygenerowanym widokiem.

Pozdrawiam

@Edit

Tymczasowe rozwiązanie:

`function filterByTag() {
var pathname = window.location.pathname;
var selected = $('#ddlTag').val();

if (pathname == '/') {
    window.location.href = ('/Quotes/Index/?sortedTag=' + selected);

}
else if (pathname = 'Quotes/Edit') {
    window.location.href = ('/Quotes/Edit/?sortedTag=' + selected);
}
else {
    window.location.href = ('/Quotes/Index/');
}

}`

Natomiast to jeszcze nie o to mi chodzi.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1