我有一个ASP .NET MVC控制器,它接收两个小数参数:
[HttpGet, Route("stores/{latitude}/{longitude}")]
public void GetStores(decimal latitude, decimal longitude)
{
...
}
当我调用此url时,此控制器无法正常工作(404错误):
http://localhost:16959/store/stores/40.5479397/-3.6116505
但是......如果我修改我的控制器,并在路由字符串中添加“/”,我可以正确调用此URL(Postman):
[HttpGet, Route("stores/{latitude}/{longitude}/")]
public void GetStores(decimal latitude, decimal longitude)
{
...
}
http://localhost:16959/store/stores/40.5479397/-3.6116505/
现在的问题是 Swagger 无法识别此斜杠“/”并且从未找到控制器。
我的问题是......解决这个问题的更好方法是什么?传递身体要求中的值?在第二个参数中添加斜杠?
答案 0 :(得分:1)
您是否尝试过传递查询字符串中的值? E.g
http://localhost:16959/store/stores?latitude=40.5479397&longitude=-3.6116505
答案 1 :(得分:0)
您不必使用路线("存储/ {纬度} / {经度} /")或修改网址模板。
只需使用<input>
名称,然后提交为URL查询字符串
<input Name="Latt" Type="Text" placeholder="Lattitude">
<input Name="Lang" Type="Text" placeholder="LAngitude">
<input Type="Submit" >
在开始表单中使用上面的代码
如果控制器输入规范有任何问题,请使用如下
Public ActionResult Login (String Latt,String Long)
{
decimal latt = (decimal)Latt;
decimal long = (decimal)Long;
(put your code here)
}