ASP.NET MVC 4 を使用して VS2012 で単純な WebAPI プロジェクトを作成しました。これが私がやろうとしていることです。同じ URL を使用する 2 つの POST ベースのアクションが必要です。1 つを受け入れapplication/x-www-form-urlencoded
てメソッドにルーティングし、FormDataCollection
次に別のアクションを別のメソッドにルーティングするコンテンツのない POST にする必要があります。以下の簡略化されたコードを参照してください。
public class SampleController : ApiController
{
public string Post(string x, int y, FormDataCollection data)
{
return "Post 1";
}
public string Post(string x, int y)
{
return "Post 2";
}
}
投稿しようとすると (2 つの呼び出し、1 つはapplication/x-www-form-urlencoded
コンテンツ タイプまたはなしtext/plain
)、ルーティングが同様のメソッドと混同されているように見えるため、内部サーバー エラー (500) が発生します。2 つのいずれかをコメントアウトすると、すべてのシナリオでもう一方が呼び出されます。
この種の細かいルーティングは手動で処理する必要がありますか (それがどれほど厄介に見えるかに関係なく)、それとも何か不足していますか (属性など)。ありがとう!