asp.net-mvc-routing – 在MVC 6控制器中使用urlhelper生成链接(
发布时间:2020-12-15 19:50:14 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试学习新的MVC 6.我之前从未使用过Microsoft MVC框架. 我试图通过使用控制器的URL(urlhelper)添加指向控制器的不同操作的链接来增强简单的教程Web API(主控制器显示API可以执行的操作). 但是当我使用时: this.Url.Action("Get",new {id = id}); 我
我正在尝试学习新的MVC 6.我之前从未使用过Microsoft MVC框架.
我试图通过使用控制器的URL(urlhelper)添加指向控制器的不同操作的链接来增强简单的教程Web API(主控制器显示API可以执行的操作). 但是当我使用时: this.Url.Action("Get",new {id = id}); 我得到一个带URL的查询字符串.我想要一个更安静的URL. 我想在使用属性路由时,我不必映射特定的路由,就像我在WebApi的旧教程中看到的那样. 我必须映射路线吗? 解决方法
您可以在控制器中为路由属性添加名称,然后使用扩展方法IUrlHelper.RouteUrl生成URL.
例如,给定以下web api控制器: [Route("api/[controller]")] public class UsersController : Controller { // GET: api/users [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } // GET api/users/5 [HttpGet("{id}",Name ="UsersGet")] public string Get(int id) { return "value"; } //additional methods... } 您可以使用@ Url.RouteUrl(“UsersGet”,new {id = 123})为特定的id by id动作生成url api / users / 123. 使用Url.Action扩展方法时的问题是,如果你有一个像上面例子中的控制器,有2个名为“Get”的动作,这将使用没有参数的动作的路由并生成/ api / Users?id = 123 .但是,如果您对该方法发表评论,您会看到@ Url.Action(“获取”,“用户”,新{id = 123})也为您提供了预期的网址. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 扩展方法必须在非泛型静态类中定义
- asp.net-mvc – 图像优化框架未初始化
- asp.net – DataMember Emit默认值
- asp.net-mvc – 什么是ASP.NET MVC不适合?
- asp.net – 确保dot.net站点始终运行
- asp.net – MVC的最佳实践..使用接口的ViewModel绑定示例
- asp.net – 何时使用HttpApplicationState而不是Web.Cachin
- ASP.NET C#静态变量是全局的?
- asp.net-mvc – ASP.NET MVC 3:如何强制ActionLink执行Htt
- .NetCore技术研究-一套代码同时支持.NET Framework和.NET C
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC:与非移动视图一起使
- IIS 7.5中未显示任何ASP.NET功能
- ASP.NET Core中返回 json 数据首字母大小写问题
- ASP.NET第一次访问慢的解决方法(MVC,Web Api)
- asp.net – 当通过文件上传控件上传文件时,在c#.
- asp.net-mvc – 在ASP.NET MVC应用程序中托管WCF
- JS-面向对象编程-对象方法添加属性
- asp.net-core – MVC 6安装为Windows服务(ASP.NE
- asp.net-mvc – 使用文件扩展名创建ActionResult
- .net – 如何使用LINQ创建IQueryable类型的匿名对
热点阅读