Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 扩展前的web api可选参数_C#_Asp.net Mvc 4_Asp.net Web Api_Routing - Fatal编程技术网

C# 扩展前的web api可选参数

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

我使用的是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}.{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它就像一个“文件”扩展名,但这里没有文件名。你不应该允许这样的电话