Asp.net-mvc – How to close an ASP.NET MVC page from the controller

asp.net-mvcmodel-view-controller

I have an ASP.NET MVC app that opens a "Request" view in a new browser window. When the user submits the form, I'd like the window to close. What should my RequestController code look like to close the window after saving the request information? I'm not sure what the controller action should be returning.

Best Answer

You could return a View that has the following javascript (or you could return a JavaScript result) but I prefer the former.

public ActionResult SubmitForm()
{
    return View("Close");
}

View for Close:

<body>
    <script type="text/javascript">
        window.close();
    </script>
</body>

Here is a way to do it directly in your Controller but I advise against it

public ActionResult SubmitForm()
{
    return JavaScript("window.close();");
}