asp.net-mvc
ActionResult
Szukaj…
Składnia
// Metoda ActionResult zwraca instancję pochodzącą z ActionResult. Jesteś w stanie stworzyć metodę akcji, która może zwrócić dowolną instancję opakowaną w odpowiedni typ ActionResult.
// Wbudowane typy zwrotne ActionResult to:
Widok(); // ViewResult renderuje widok jako stronę internetową
Częściowy widok(); // PartialViewResult renderuje widok częściowy, który można wykorzystać jako część innego widoku.
Przeadresować(); // RedirectResult przekierowuje do innej metody akcji za pomocą swojego adresu URL.
RediectToAction (); RedirectToRoute (); // RedirectToRouteResult przekierowuje do innej metody akcji.
Zawartość(); // ContentResult zwraca typ zawartości zdefiniowany przez użytkownika.
Json (); // JsonResult zwraca zserializowany obiekt JSON.
JavaScript (); // JavaScriptResult zwraca skrypt, który można wykonać po stronie klienta.
Plik(); // FileResult zwraca wyjście binarne do zapisu w odpowiedzi.
// EmptResult reprezentuje wartość zwracaną, która jest używana, jeśli metoda akcji musi zwrócić wynik o wartości NULL.
Metody działania
Gdy użytkownik wpisze adres URL, na przykład: http://example-website.com/Example/HelloWorld , aplikacja MVC użyje reguł routingu do przeanalizowania tego adresu URL i wyodrębnienia podścieżki, która określi kontroler, akcję i możliwe parametry. W przypadku powyższego adresu URL wynikiem będzie / Example / HelloWorld, który domyślnie w regułach routingu podaje nazwę kontrolera: Exmaple i nazwę akcji: HelloWorld.
public class ExampleController: Controller
{
public ActionResult HelloWorld()
{
ViewData["ExampleData"] = "Hello world!";
return View();
}
}
Powyższa metoda ActionResult „HelloWorld” renderuje widok o nazwie HelloWorld, w którym możemy następnie wykorzystać dane z ViewData.
Mapowanie parametrów metody działania
Jeśli w adresie URL byłaby inna wartość, taka jak: / Example / ProcessInput / 2, reguły routingu zagrożą ostatniej liczbie jako parametr przekazany do akcji ProcessInput kontrolera Przykład.
public ActionResult ProcessInput(int number)
{
ViewData["OutputMessage"] = string.format("The number you entered is: {0}", number);
return View();
}
Wywoływanie ActionResult w innym ActionResult
Możemy nazwać wynik akcji innym wynikiem działania.
public ActionResult Action1()
{
ViewData["OutputMessage"] = "Hello World";
return RedirectToAction("Action2","ControllerName");
//this will go to second action;
}
public ActionResult Action2()
{
return View();
//this will go to Action2.cshtml as default;
}