Web-Api-GET-Methode, die hat eine null-Guid möglich?
Habe ich ein MVC-Web-API-get-Methode, die ich möchte in der Lage sein, um übergeben Sie eine null-Guid als parameter. Wenn ich ein setup das mit einer "?Id=null" bekomme ich einen 400-Antwort. Ich kann pass eine leere guid, aber das würde ich eher nicht tun.
Egal was ich ändern Sie die URI, "id= id=null etc" es kann nicht sein, dass null. Weiß jemand, wie diese Arbeit zu machen?
[HttpGet]
public User Get(Guid? Id)
Update Route config
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Vollständige Http-Get-Signatur sourceId ist der param, dass id like to pass als null.
[HttpGet]
public IEnumerable<ActionItemsListViewModel> GetPagedList(int skip, int take, int page, int pageSize, [FromUri]List<GridSortInfo> sort, [FromUri] ActionItem.ActionItemStatusTypes? actionItemStatus, Guid? sourceId)
Habe das problem gefunden, dieser filter war nämlich der ModelState war ungültig.
public class ApiValidationActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid )
{
var errors = actionContext.ModelState
.Where(e => e.Value.Errors.Count > 0)
.Select(e => e.Value.Errors.First().ErrorMessage).ToList();
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, string.Join(" ", errors));
}
}
}
- Haben Sie versucht, sich nicht zu übergeben nichts?
- Ja, und das funktioniert, leider ist die Steuerung ich bin mit mit der api erlaubt mir nicht, ausschließen die parameter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage, übergeben Sie null, um die Guid? wenn ich
Controller:
Versuchen, Sie zu nutzen: