Simple controller which takes POST is not found

Web.API is a little bit picky when you want to post "simple" values.

You need to use the [FromBody] attribute to signal that the value is not coming from the URL but from the posted data:

[HttpPost]
public string Test([FromBody] string output)
{
    return output;
}

With this change you won't get 404 anymore but output will be always null, because Web.Api requries the posted values in special format (look for the Sending Simple Types section):

Second, the client needs to send the value with the following format:

=value

Specifically, the name portion of the name/value pair must be empty for a simple type. Not >all browsers support this for HTML forms, but you create this format in script...

So recommend that you should create a model type:

public class MyModel
{
    public string Output { get; set; }
}

[HttpPost]
public string Test(MyModel model)
{
    return model.Output;
}

Then it will work with your sample froms without modifing your views.