Post data json object to c# dynamic object

I was working on a side project when i came across a rather interesting way to get post data from an HTTP post that i thought i’d share.

first i had an HTTP Post via angularJS

        	convert: function (prefix, suffix, delimiter) {
        		var data = { "prefix": prefix, "suffix": suffix, "delimiter": delimiter };
        		return $"manager/convert.json", data);

Initially i tried to access the Request.Form but for some reason it wasn’t being populated. So that lead me to get a little bit creative. Using a streamreader to get the input stream from the HTTPContext we’re able to use JsonNet to deserialize the json into a dynamic c# object

		/// <summary>
		/// gets data from post request
		/// </summary>
		/// <param name="context"></param>
		/// <returns>dynamic object containing post javascript object</returns>
		public static dynamic GetPostData(HttpContextBase context)
			using (StreamReader sr = new StreamReader(context.Request.InputStream))
				return JsonConvert.DeserializeObject<ExpandoObject>(sr.ReadToEnd());

Which can then be used like this:

		private object Convert(HttpContextBase context)
			var data = GetPostData(context);
			var converter = new Converter(data.prefix, data.suffix, data.delimiter);
			return converter.Convert();

The flexibility of being contract-less in the exchange is pretty freeing and refreshing. However i do want to point out that this is much less safe than creating a strict model for the exchange of information. That being said i see nothing wrong with using this approach for less critical subsystems.