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

  • IDE Irony: Coding Errors Cause 'Critical' Vulnerability in Visual Studio

    In a larger-than-normal Patch Tuesday, Microsoft warned of a "critical" vulnerability in Visual Studio that should be fixed immediately if automatic patching isn't enabled, ironically caused by coding errors.

  • Building Blazor Applications

    A trio of Blazor experts will conduct a full-day workshop for devs to learn everything about the tech a a March developer conference in Las Vegas keynoted by Microsoft execs and featuring many Microsoft devs.

  • Gradient Boosting Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the gradient boosting regression technique, where the goal is to predict a single numeric value. Compared to existing library implementations of gradient boosting regression, a from-scratch implementation allows much easier customization and integration with other .NET systems.

  • Microsoft Execs to Tackle AI and Cloud in Dev Conference Keynotes

    AI unsurprisingly is all over keynotes that Microsoft execs will helm to kick off the Visual Studio Live! developer conference in Las Vegas, March 10-14, which the company described as "a must-attend event."

  • Copilot Agentic AI Dev Environment Opens Up to All

    Microsoft removed waitlist restrictions for some of its most advanced GenAI tech, Copilot Workspace, recently made available as a technical preview.

Subscribe on YouTube