Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MVC 4 Web API中的URL参数

MVC 4 Web API中的URL参数
EN

Stack Overflow用户
提问于 2012-03-30 13:00:37
回答 2查看 30.4K关注 0票数 7

假设我在MVC 4 Web API控制器中有两个方法:

代码语言:javascript
运行
AI代码解释
复制
public IQueryable<A> Get() {}

代码语言:javascript
运行
AI代码解释
复制
public A Get(int id) {}

和以下路由:

代码语言:javascript
运行
AI代码解释
复制
routes.MapHttpRoute(
    name: "Default", 
    routeTemplate: "{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

这与预期的一样。再增加一个参数,例如:

代码语言:javascript
运行
AI代码解释
复制
public IQueryable<A> Get(int p) {}

public A Get(int id, int p) {}

导致以下请求的MVC返回404的情况:

代码语言:javascript
运行
AI代码解释
复制
GET /controller?p=100

代码语言:javascript
运行
AI代码解释
复制
GET /controller/1?p=100

并显示消息“在与请求匹配的控制器‘控制器’上找不到操作”

我希望URL参数应该通过MVC连接,没有问题,但这不是真的。这是一个bug还是我对MVC如何将请求映射到操作的误解?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-30 14:04:29

如果您考虑您正在尝试执行的操作和正在尝试的路由,您将意识到在您的示例中,第二个参数"p“也需要被标记为可选参数。

也就是说,您的路由应该定义如下:

代码语言:javascript
运行
AI代码解释
复制
routes.MapHttpRoute(
name: "Default", 
routeTemplate: "{controller}/{id}/{p}",
defaults: new { id = RouteParameter.Optional, p = RouteParameter.Optional });

执行此操作后,URL

/controller?p=100将映射到您的

代码语言:javascript
运行
AI代码解释
复制
public IQueryable<A> Get(int p) {}

方法和URL,如下所示:

代码语言:javascript
运行
AI代码解释
复制
 /controller/1?p=100

将映射到您的

代码语言:javascript
运行
AI代码解释
复制
public A Get(int id, int p) {}

方法,正如您所期望的。

因此,回答你的questions....no,这不是一个错误,而是设计/预期的。

票数 8
EN

Stack Overflow用户

发布于 2015-04-23 05:09:50

在WebApiConfig中,将新的默认值添加到httproute

附加路径的

RouteParameter.Optional对我不起作用

代码语言:javascript
运行
AI代码解释
复制
  config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}/{voucher}",
            defaults: new { id = RouteParameter.Optional ,defaultroute1="",defaultroute2=""}
        );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9943502

复制
相关文章
ASP.NET MVC 4 Beta:强化Web API
ASP.NET MVC 4 Beta 新功能特性: (1) ASP.NET Web API (2) 添加移动项目模板 (3) 对移动 app 特性的功能支持,JQuery Moblie,View Switcher and Browser Overriding (4) 提升自定义代码产生器 (5) 增强异步方法,异步产生器提供返回参数支持 Task 实例。 (6) 单页面应用程序的支持 (7) 增强默认模板功能。 (8) 更好的支持 Windows Azure SDK (9) 改进 Razo
张善友
2018/01/29
7850
ASP.NET Core MVC中构建Web API
在ASP.NET CORE MVC中,Web API是其中一个功能子集,可以直接使用MVC的特性及路由等功能。 在成功构建 ASP.NET CORE MVC项目之后,选中解决方案,先填加一个API的文
码农阿宇
2018/04/18
8610
ASP.NET Core MVC中构建Web API
ASP.NET MVC Web API
实际开发中,我们可以轻松的使用 WebAPI 配合 Routing 路由和 EF 框架来轻松的实现一个 RESTful 的 API 并将其作为软件的后端。
李郑
2019/12/04
1.3K0
js获取url中的参数
js获取url中的参数 <script language="javascript"> function getRequestPars() { var url = location.search;
码客说
2019/10/22
15.8K0
js获取url中的参数
js获取url中的参数 function UrlSearch() { var name, value; var str = kk; //取得整个地址栏 var num = st
河岸飞流
2019/08/09
15.9K0
js获取URL中的参数
一般网页开发中会使用url进行传参,有的采用java的方式或其他的方式,下面我来介绍一下如何通过js来获取url中的参数。请看代码:
OECOM
2020/07/01
14.2K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2018/01/18
7.2K0
[javascript] js获取url中的get参数
调用数组的map函数 , map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
唯一Chat
2021/05/17
10.9K0
在Scala中构建Web API的4大框架
       Scala是一种强大的语言,很快就成为许多开发人员的最爱。然而,语言只是一个起点 - 并非每个函数都将由语言核心覆盖。Scala还创建了一些厉害的框架。接下来看看Scala的4个强大框架以及其优点和缺点。请记住,框架的最佳选择总是应符合您特定项目的要求——因此,请酌情考虑我们的推荐,根据您自己的项目要求决定最适合您的项目。
数据星河
2018/11/15
2.1K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2018/01/14
6.8K0
JS 获取URL中的参数值
本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: Sep 11, 2019 at 11:40 am
Alone88
2019/10/22
18.1K0
js获取url地址中的参数
<script type="text/javascript"> function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return r[2]; return null; } </script
磊哥
2018/05/08
19.1K0
获取URL地址中的GET参数
/*-----------------实现1--------------------*/ function getPar(par){ //获取当前URL var local_url = document.location.href; //获取要取得的get参数位置 var get = local_url.indexOf(par +"="); if(get == -1){ return false; } //截取字符串
似水的流年
2019/12/11
6.5K0
URL 中的 headers 和参数探究
最近在工作中碰到一个这样的问题,在做 Postman 请求的时候,Postman 返回的提示要求输入一个 token 来验证身份。开始我将这个 token 放在请求参数(request parameters)中,Postman 仍然提示我没有加入 token。后来经过同事提醒才知道,原来这个 token 需要放入标头(headers)中,这样才顺利完成了 Postman 的请求。那为什么这个 token 需要放入 headers 中,在链接(URL)中什么时候应该使用 headers 的参数什么时候又应该使用 URL 的请求参数呢?下面让我们一起带着问题来继续阅读。
airmelt
2022/12/02
3.4K0
url参数存在特殊字符(“ & @)报错怎么替换:URL中的参数编码梳理
网址URL中特殊字符转义编码 字符 - URL编码值 空格 - %20 " - %22 # - %23 % - %25 & - %26 ( - %28 ) - %29 + - %2B ,
陈哈哈
2020/07/06
5.6K0
url参数存在特殊字符(“ & @)报错怎么替换:URL中的参数编码梳理
ASP.MVC当URL跳转时候参数的安全性
      一个页面跳转到另外一个页面直接将参数写在URL上面并不安全比如 http://XXXXXXXXXXX/meeting/shakeGroup?id=5381&uid=o0En_sj1J0bF
用户1055830
2018/01/18
1.4K0
ASP.MVC当URL跳转时候参数的安全性
MVC 获取路由的 URL 参数值和默认值的集合。
跟aspx页面不一样 用Request 获取不到路由配置的 参数 可以采用下面方法获取 public ActionResult List() { //获取路由中所有的key foreach (string item in RouteData.Values.Keys) { ViewBag.Keys += item + "--->"; } //获
纯粹是糖
2018/03/14
1.5K0
MVC 获取路由的 URL 参数值和默认值的集合。
用javascript替换URL中的参数值
今天遇到一个需要用javascript将url中的某些参数替换的需求,想起了不久前从司徒正美先生的博客中淘到了一个parseUrl函数,正好可以借此实现,代码整理如下: //分析url function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, protocol:
菩提树下的杨过
2018/01/22
3.4K0
ASP.NET Web API路由系统:Web Host下的URL路由
ASP.NET Web API提供了一个独立于执行环境的抽象化的HTTP请求处理管道,而ASP.NET Web API自身的路由系统也不依赖于ASP.NET路由系统,所以它可以采用不同的寄宿方式运行于不同的应用程序中。如果采用Web Host的方式将定义Web API寄宿于一个Web应用之中,其实最终的URL路由还是通过ASP.NET本身的路由系统完成的,那么两个路由系统之间是如何衔接在一起的呢?。 目录 一、HostedHttpRoute 二、HttpWebRoute
蒋金楠
2018/01/15
1.7K0
【前端】提取URL中的各个GET参数
zhaokang555
2023/10/17
2520

相似问题

为什么这个单例实现可以工作?

10

为什么这个objective-c单例可以工作?

16

这个javascript单例是如何工作的?

25

为什么这个单例类代码工作正常?

22

Java单例方法不工作

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档