我試圖生成id作爲新的Guid,如果相同的路由配置中沒有提供,但它總是生成相同的NewGuid。這裏是我的代碼:WebAPI路由默認值Guid.NewGuid()
config.Routes.MapHttpRoute(
name: "myroute",
routeTemplate: "api/my/route/{userID}",
defaults: new { controller = "my", userID = Guid.NewGuid() }
);
下面是操作方法:
public string Post([FromBody]string value, Guid userID)
{
return "Message Received for User: " + userID.ToString();
}
無論我有多少時間調用該方法,我收到了同樣的答覆,直到除非我重建代碼。
"Message Received for User: f90b2d6c-29f0-44a0-ba4d-aa72ac25d520"
有人可以請指導我這裏發生了什麼,以及如何實現所需的功能?
路由配置只發生一次,當應用程序啓動。因此,您正在生成一個GUID並將其存儲。然後,在應用程序重新啓動之前,它始終是默認值。 –
是URI中的_userId_?如果是這樣,你應該使用'FromUri'而不是'FromBody'。試一試 – MrFabio
@JamesR。謝謝......清除困惑...然後你可以請指導我如何實現所需的功能,就像我將該參數設置爲RouteParameter.Optional路由無法匹配該動作並引發錯誤:未找到與請求URI'http:// localhost:31929/api/my/rout /'匹配的HTTP資源。 –