public void RedirectToAction_ThrowsIfControllerIsNull()
 {
     // Act & assert
     ExceptionHelper.ExpectArgumentNullException(
         delegate {
         ControllerExtensions.RedirectToAction <SampleController>((SampleController)null, x => x.SomeMethod(42));
     }, "controller");
 }
        public void RedirectToAction_DifferentController()
        {
            // Act
            RedirectToRouteResult result = ControllerExtensions.RedirectToAction <DifferentController>(new SampleController(), x => x.SomeOtherMethod(84));

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("", result.RouteName);
            Assert.AreEqual(3, result.RouteValues.Count);
            Assert.AreEqual("Different", result.RouteValues["controller"]);
            Assert.AreEqual("SomeOtherMethod", result.RouteValues["action"]);
            Assert.AreEqual(84, result.RouteValues["someOtherParameter"]);
        }
        public void RedirectToAction_SameController()
        {
            // Act
            RedirectToRouteResult result = ControllerExtensions.RedirectToAction <SampleController>(new SampleController(), x => x.SomeMethod(42));

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("", result.RouteName);
            Assert.AreEqual(3, result.RouteValues.Count);
            Assert.AreEqual("Sample", result.RouteValues["controller"]);
            Assert.AreEqual("SomeMethod", result.RouteValues["action"]);
            Assert.AreEqual(42, result.RouteValues["someParameter"]);
        }
Пример #4
0
        // GET: Phones
        public ActionResult List()
        {
            PhonesService phoneService = new PhonesService();
            PhoneListVM   model        = new PhoneListVM();

            TryUpdateModel(model);

            if (!model.ContactID.HasValue)
            {
                return(ControllerExtensions.RedirectToAction <ContactsController>(this, c => c.List()));
            }

            model.Contact = phoneService.GetContact(model.ContactID.Value);
            model.Phones  = phoneService.GetAll().Where(p => p.ContactID == model.ContactID.Value).ToList();


            return(View(model));
        }
 protected ActionResult RedirectToAction <TController>(
     Expression <Action <TController> > action) where TController : Controller
 {
     return(ControllerExtensions.RedirectToAction(this, action));
 }