Przekierowanie na inną stronę MVC

0

Cześć potrzebuje małego nakierowania. Chcę zrobić (pewnie przy pomocy routingu) przekierowanie na inną stronę czyli np (www.google.pl) na (www.kkk.pl) jakaś rada konkretna ? szukałem już lecz jakoś zbytnio nic mi nie pomogło. Na jednym widoku wyświetlam 3 akcje ale jak wpiszę konkretny url jednej z tych akcji to mi się wyświetli konkretny widok akcji i właśnie tą konkretną akcję chce przekierować na akcje gdzie wyświetlam 3 widoki

0

Do połowy myślałem, że rozumiem o co chodzi.

Ale po przeczytaniu ostatniego zdania nie mam pojęcia co chcesz zrobić.

0

mając public Action lala() return view chce to przekierować na Action tata() return view . Teraz lepiej czy dalej zagmatwanie ?

0

Przy return View() możesz jako parametr podać nazwę widoku, który ma zostać zwrócony.

Tylko co to ma teraz wspólnego z początkiem w którym mówisz coś o przekierowaniu na zewnętrzne strony?

0

w głównym widoku plik.cshtml mam takie coś

     <div>
        @Html.Action("NewUsers", "Admin")
    </div>
    <div id="Information">
        @Html.Action("NewRecipes", "Admin")
    </div>
    <div>

        @Html.Action("ShowActiveQuestions")
    </div>

i teraz jak wywołam np samo ShowActiveQuestions to mi wyświetli się tylko i wyłącznie ten widok a ja chcę by mi on przekierował go do głównego widoku

0

Prawdę powiedziawszy podobnie jak @some_ONE nie rozumiem co autor ma na myśli.

public ActionResult ShowActiveQuestions()
{
     return View("Index"); // Index to twój widok do którego chcesz przekierować
}
0

@some_ONE @mariano901229 Tak wiem lecz wtedy zwracam wiodk z innej akcji a ja chce zwrócić z tej konkretniej. Tak jak wyżej w kodzie który wkleiłem wyświetlam 3 różne akcje które zwracają inny widok (przykładowy kod jednej akcji)

         public ActionResult NewUsers()

        {
            var count = db.Users.Count();
            if (count < 5) return RedirectToAction("ShowUsers", "Admin");
            var model = db.Users.OrderBy(x => x.Id).Skip(count - 5).Take(5);
            return View(model);
        }

ale każdą z tych akcji mogę wyświetlić osobno. I teraz chce sie zabezpieczyć że jak ktoś poda ten adres to go przekieruje do AdminPaneluser image

No i druga sprawa że wszystkie linki do css mam tylko w tym jedynm widoku

0

O ile dobrze zrozumiałem czego potrzebujesz to możesz każda z tych akcji oznaczyć atrybutem, że np tylko admin może ją wykonać, lub sprawdzić skąd idzie request poprzez

Request.UrlReferrer 

.
Zamiast używać css w jednym widoku możesz używać layoutów.

0

Witam, czy chodzi Ci o autoryzacje żądania ? Jeżeli tak, to filtr autoryzacji sprawdza czy użytkownik, który żąda dostępu do źródła ma do niego prawo. Framework MVC ma wbudowany domyślny filtr autoryzacji można go również nadpisać i stworzyć swój własny. Pobaw się atrybutem [Authorize] i dodaj poniższy kod do web.config.

 
<authentication mode="Forms">
  <forms loginUrl="~/UnAuthorize" timeout="2880" />
</authentication>

Tutaj masz coś podobnego http://stackoverflow.com/questions/7656163/asp-net-mvc-3-redirect-unauthorized-user-not-to-loginurl
Pozdrawiam.

0

Zastanów się: przekierowanie może zrobić tylko akcja kontrolera. To co jest wysyłane do przeglądarki określane jest przez to, co w akcji jest zwracane. Od tego już tylko mały kroczek do zobaczenia listy klas dziedziczących po ActionResult i wydedukowania, która z nich zawiera to, czego potrzebujesz.
Z poziomu akcji kontrolera daj w zależności od tego, co dokładnie potrzebujesz osiągnąć return: RedirectToAction/RedirectToActionPermanent albo Redirect/RedirectPermanent albo RedirectToRoute/RedirectToRoutePermanent. W przeglądarce przełoży się to na header Location: url i status http 301 (*Permanent) lub 302 (pozostałe).

Co do reszty osób wypowiadających się w tym wątku - autor napisał, że potrzebuje przekierowania na inną stronę. Co tu niezrozumiałego jest?

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