C# 扩展前的web api可选参数
我使用的是web api 1 mvc 4 我有以下代码C# 扩展前的web api可选参数,c#,asp.net-mvc-4,asp.net-web-api,routing,C#,Asp.net Mvc 4,Asp.net Web Api,Routing,我使用的是web api 1 mvc 4 我有以下代码 public void save(int id , string name, string code = "") { } 我在webapi.config中有以下映射 config.Routes.MapHttpRoute( name: "saveproduct", routeTemplate: "api/product/save/{id}/{name}/{code}.{e
public void save(int id , string name, string code = "")
{
}
我在webapi.config中有以下映射
config.Routes.MapHttpRoute(
name: "saveproduct",
routeTemplate: "api/product/save/{id}/{name}/{code}.{ext}",
defaults: new
{
controller = "product",
code = RouteParameter.Optional,
action = "save"
});
现在如果我打电话
localhost://api/product/save/1/book/p23.json
它起作用了
但是
localhost://api/product/save/1/book/.json
它不起作用
我发现的原因是可选参数“code”介于两者之间
我怎样才能使它起作用。。因为我需要扩展,所以必须在末尾使用可选参数,如“code”
我找到了,但找不到任何相关信息
谢谢,你不能
<强>长:在系统中间不能有一个可选参数,因为系统不能理解“.jSON”是{代码}的值还是{Ext}参数的值。< /P> 如果要使用这种方法,需要始终强制使用代码参数
顺便说一句,像这样的路线localhost://api/product/save/1/book/.json 毫无意义。json它就像一个“文件”扩展名,但这里没有文件名。你不应该允许打这种电话。Short:你不能
<强>长:在系统中间不能有一个可选参数,因为系统不能理解“.jSON”是{代码}的值还是{Ext}参数的值。< /P> 如果要使用这种方法,需要始终强制使用代码参数
顺便说一句,像这样的路线localhost://api/product/save/1/book/.json 毫无意义。json它就像一个“文件”扩展名,但这里没有文件名。你不应该允许这样的电话