title: WebAPI accepts broken JSON send via Fiddler
body: <p>For some reason I can send these two JSON requests to my WebAPI and it'll accept and create an User. One with double quotes and one without.</p>
  
  <pre><code>{"Username":"Bob", "FirstName":"Foo", "LastName":"Bar", "Password":"123", "Headline":"Tuna"}
  
  {Username:"Bob", FirstName:"Foo", LastName:"Bar", Password:"123", Headline:"Tuna"}
  </code></pre>
  
  <p>This is the method which creates an User.</p>
  
  <pre><code>    // localhost:12345/api/controller/create
      [ActionName("create")]
      public HttpResponseMessage PostUser(User user)
      {
          if (ModelState.IsValid)
          {
              db.Users.Add(user);
              db.SaveChanges();
  
              HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, user);
              response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = user.UserId }));
              return response;
          }
          else
          {
              return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
          }
      }
  </code></pre>
  
  <p>However I'm able to make a successful POST request without the <code>/create</code> at the end of URL. I'm assuming that the reason for the success POST request is because whether or not the action name is present it will search for a <code>Post</code> in the method name. </p>
  
  <p>So my question is, what's the purpose of the action name then? How can I make it so it's a must in the URL? Also why is it accepting both JSON requests and how can I make it accept one or the other.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <pre><code>config.Routes.MapHttpRoute(
              name: "DefaultApi",
              routeTemplate: "api/{controller}/{id}",
              defaults: new { id = RouteParameter.Optional }
          );
  
  // Routing by Action-name
  config.Routes.MapHttpRoute(
              name: "ActionApi",
              routeTemplate: "api/{controller}/{action}/{username}",
              defaults: new { username = RouteParameter.Optional }
          );
  </code></pre>
  
  <p>Thank you for your time</p>
  
  <p>/twice</p>