 <p>Give <code>TryUpdateModel(model)</code> a try, should fit your needs. </p> <p>This won't throw an exception, <strong>and it will</strong> update the model and then return <code>false</code> if there are validation errors.</p> <p>If you care about the errors, you check the <code>ModelState</code> in the false instance.</p> <p>Hence, you can use it as so to always save changes:</p> <pre><code>[HttpPost] public ActionResult Save(Model values) { var model = new Model(); TryUpdateModel(model); model.saveChanges(); } </code></pre>