I have a Save method that has some additional server-side validation to it. If it fails, I want to maintain the "/Edit/id" URL in the browser so that refreshes will stay on the page. (If that's not possible in this situation, please let me know.)

Here's an abbreviated view of how I'm trying to do this right now:

```
[HttpPost]
public ActionResult Save(UserEditModel model) {
    try {
        repository.SaveUser(model.CopyTo());
    }
    catch (InvalidOperationException ex) {
        // Doing this to just display it at the top of the page as it is not property-specific.
        TempData["UserError"] = ex.Message;
        // Doing this to maintain the "Edit/id" URL.
        return RedirectToAction("Edit", "Users", new { id = model.Id });
    }

    // Want to keep the URL on the Index page as "Users", instead of "Users/Save".
    return RedirectToAction("Index", "Users", new { page = model.Page });
}

```

Other than the URL, the biggest issue I'm coming across with this is that because I'm redirecting, I also lose all of the data the User already entered in the field on the failed Save attempt.

I already tried adding an optional `UserEditModel` parameter to the Edit action that would default to null, but when navigating to the Edit action from links on the page (not redirecting from the Save action), the optional Model parameter was getting defaulted to a `new UserEditModel()` instead of the default value of null I gave it in the parameter list.