RedirectToAction results in a null model

I have 2 actions on the controller:

public class CalculatorsController : Controller
{
    //
    // GET: /Calculators/

    public ActionResult Index()
    {
        return RedirectToAction("Accounting");
    }


    public ActionResult Accounting()
    {
        var combatants = Models.Persistence.InMemoryCombatantPersistence.GetCombatants();
        Debug.Assert(combatants != null);
        var bvm = new BalanceViewModel(combatants);
        Debug.Assert(bvm!=null);
        Debug.Assert(bvm.Combatants != null);
        return View(bvm);
    }

}

When the Index method is called, I get a null model. When the Accounting method is called directly via url, I get a hydrated model.

+5
source share
2 answers

, . , , , . , , , . [EDIT: , . , , RedirectToAction.] , .

... , , http://www.domain.com/Calculators "". :

routes.MapRoute(
  "Accounting",
  "Calculators/{action}/",
  new { controller = "Calculators", action = "Accounting" }
);

, - "".

+1

. (BalanceViewModel). BalanceViewModel.

. (aspx) ...

BalanceViewModel TempData, , .

return View ( "", BalanceViewModel()) .

EDIT: - , :

public class CalculatorsController : Controller {
    // GET: /Calculators/
    public ActionResult Index() {
        return View(GetBalanceViewModel());
    }

    public ActionResult Accounting() {
        return View(GetBalanceViewModel());
    }

    private BalanceViewModel GetBalanceViewModel() {
        var combatants = Models.Persistence.InMemoryCombatantPersistence.GetCombatants();
        Debug.Assert(combatants != null);
        var bvm = new BalanceViewModel(combatants);
        Debug.Assert(bvm != null);
        Debug.Assert(bvm.Combatants != null);
        return bvm;
    }
}

?

+1

All Articles