Practical .NET

Returning Simple Strings from Action Methods

When you want to return a string result -- either as text, HTML or XML -- then a ContentResult object gives you the right balance of simplicity and control.

Sometimes all you want to return from your Action method is some plain text (typically something like "Please go away" because something has gone horribly wrong). The easiest way to do that is to change the return value of your Action method to string and return your string:

Function GetCustomerInfo(Id As Integer?) As String
  Return "Please Go Away"
End Function

The problem is that you now have a method that can only return a string -- you can't, for example, return a View if everything goes well.

If you leave your return type as ActionResult, then you can use the Content helper method to return a ContentResult object. That gives you some extra support because the ContentResult object will specify the MIME type of the string you're returning. By default, that type is set to text/plain.

However, if you want to return some other type, you can specify that in the second parameter you pass to the Content method (the first parameter is the string you want to return).

For example, this code returns some emphatic text to the client as HTML when things go wrong:

Function GetCustomerInfo(Id As Integer?) As ActionResult
  Try
    '...code that might go wrong...
  Catch
    Return Content("<html><body><h1>Please Go Away</h1></body></html>", "text/html")
  End Catch
  End Try
End Function

It's just as easy to use this to return an XML string as an HTML string.

About the Author

Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.

comments powered by Disqus

Featured

  • Creating Business Applications Using Blazor

    Expert Blazor programmer Michael Washington' will present an upcoming developer education session on building high-performance business applications using Blazor, focusing on core concepts, integration with .NET, and best practices for development.

  • GitHub Celebrates Microsoft's 50th by 'Vibe Coding with Copilot'

    GitHub chose Microsoft's 50th anniversary to highlight a bevy of Copilot enhancements that further the practice of "vibe coding," where AI does all the drudgery according to human supervision.

  • AI Coding Assistants Encroach on Copilot's Special GitHub Relationship

    Microsoft had a great thing going when it had GitHub Copilot all to itself in Visual Studio and Visual Studio Code thanks to its ownership of GitHub, but that's eroding.

  • VS Code v1.99 Is All About Copilot Chat AI, Including Agent Mode

    Agent Mode provides an autonomous editing experience where Copilot plans and executes tasks to fulfill requests. It determines relevant files, applies code changes, suggests terminal commands, and iterates to resolve issues, all while keeping users in control to review and confirm actions.

  • Windows Community Toolkit v8.2 Adds Native AOT Support

    Microsoft shipped Windows Community Toolkit v8.2, an incremental update to the open-source collection of helper functions and other resources designed to simplify the development of Windows applications. The main new feature is support for native ahead-of-time (AOT) compilation.

Subscribe on YouTube