Wpadłem wydaje mi się na fajny pomysł żeby to zrobić tylko jest jedna rzecz, nie wiem czemu właściwość
public Service selectedServiceID { get; set; }
po przekierowaniu do metody akcji Index
w kontrolerze BookVisitController
(po tym jak użytkownik się zarejestruje/zaloguje) przyjmuje wartość null..
public class BookVisitController : Controller
{
private IServiceRepository repository;
private Service selectedServiceID { get; set; }
public BookVisitController(IServiceRepository serviceRepository)
{
repository = serviceRepository;
}
public RedirectToRouteResult AddVisit(int serviceID)
{
selectedServiceID = repository.Services.FirstOrDefault(s => s.ServiceID == serviceID);
return RedirectToAction("Index");
}
[Authorize]
[HttpGet]
public ActionResult Index()
{
return View(selectedServiceID);
}
Czyli działa to w ten sposób: Po naciśnięciu przycisku Zarejestruj, wysyła się formularz z polem ukrytym dla ServiceID
i trafia do metody akcji AddVisit
, w której jest zapisywany do właściwości selectedServiceID
, następnie mamy przekierowanie do Index
-> użytkownik się rejestruje i po tym zostaje z powrotem przekierowany do Index
jednakże w tym momecie właściwość selectedServiceID
wynosi null. Ma ktoś jakiś pomysł ?
EDIT:
Znalazłem rozwiązanie -> TempData
public RedirectToRouteResult AddVisit(int serviceID)
{
Service selectedServiceID = repository.Services.FirstOrDefault(s => s.ServiceID == serviceID);
TempData["selectedServiceID"] = selectedServiceID;
return RedirectToAction("Index");
}
[Authorize]
public ActionResult Index()
{
Service selectedServiceID = TempData["selectedServiceID"] as Service;
return View(selectedServiceID);
}
Czy tak powinienem to zrobić ? Czy jest jakiś inny sposób ?