2016-08-18 11 views
2

私は以下のようにAsp.Net WEBAPIコントローラを持っている:urlパラメータにnullを渡すことはできますか?

[RoutePrefix("business/api/v1")] 
public class BusinessController : ApiController 
{ 


    [Route("GetDetails/{id}")] 
    public HttpResponseMessage Get(string id) 
    { 
     // get business details code. 
     } 
    } 

は、クライアントがIDヌルでこのAPIを打つことができることをとにかくあります?

答えて

2

App_Start/WebApiConfig.csのWeb APIルートの構成によって異なります。

ルートのようなものである場合:

config.Routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "business/api/v1/GetDetails/{id}", 
     defaults: new { id = RouteParameter.Optional } 
); 

ユーザーがリソースの使用http://localhost.business/api/v1/GetDetailsまたはhttp://localhost.business/api/v1/GetDetails/1に到達することができます。

あなたは、ユーザーをdefaults: new { id = RouteParameter.Optional }を削除そうidを渡す必要があり、それは404

+0

をなしidパラメータはオプションではありません..私は、ルーティング属性を使用しています。..私が属性ルーティングでオプションにしたかどうかを確認する方法? –

+0

'id'をオプションにしたいのですか? http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#optional – Marusyk

+0

いいえ。私はオプションとしてそれを望んでいません。 .. –

0

を返します。試してみてください。

[RoutePrefix("business/api/v1")] 
public class BusinessController : ApiController 
{  
    [Route("GetDetails/{id:int?}")] 
    public HttpResponseMessage Get(int id) 
    { 
     // get business details code. 
    } 
} 
関連する問題