问题标签 [asp.net-mvc-routing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 向 MVC 路由添加冗余信息
当您遇到此问题时,您会注意到问题的标题位于地址栏中,并且您单击的链接位于此处。我不确定确切的术语,因此很难搜索,但我该如何做类似的事情?也就是说,如何将数据添加到纯粹用于显示/搜索引擎的地址栏。
谢谢
asp.net-mvc-routing - 如何防止 Url.RouteUrl(...) 从当前请求继承路由值
假设您有一个在购物车中显示产品的操作方法
在其他地方,在您Url.RouteUrl
用来创建指向站点上其他页面的 HREF 链接的每个页面上显示的标头中:
这testimonials-route
是global.ascx
由下面的第一条路线定义的。请注意,上面的调用RouteUrl
不提供 a gender
,但路由定义为默认值 'neutral',因此我们希望调用 Testimonials.Index("neutral")。
如果有人访问该页面/products/women
,我们会得到一个 HREF。/testimonials/women
如果有人访问该页面/products
,那么我们会得到一个空的 HREF(对 RouteUrl 的调用返回 null)。
但这没有意义不是吗?如果我们不为它提供路由值,testimonials-route
应该默认为我们?'neutral'
事实证明,Url.RouteUrl(routeName, routeValues)
辅助扩展将首先在其routeValues
参数中查找gender
路由值,如果在该字典中找不到它,它将查看我们所在的当前 URL(请记住,Url 是 UrlHelper 对象它具有可用的当前请求的上下文)。
如果我们在男士产品页面上,这可能会给我们一个男士推荐的链接,但如果我们没有在RouteUrl
调用中传递值并明确指定“中性”,这可能不是我们想要的文件中的默认值global.asax.cs
。
在我们访问的情况下,/products/
我们触发了'products-route'
路由并Products(null)
调用了该方法。当Url.RouteUrl()
我们gender
使用testimonials-route
. 即使我们为gender
in 'testimionials-route
' 指定了默认值,它仍然使用这个 null 值,这会导致路由失败并RouteUrl
返回 null。[注意:路由失败是因为我们对 (men|women|neutral) 有限制,而 null 不适合]
它实际上变得更可怕 - 因为“控制器”和“动作”可以以相同的方式继承。即使使用具有默认控制器的显式路由名称调用 RouteUrl(...),这也可能导致生成完全错误的控制器的 URL。
在这种情况下,一旦您弄清楚了,您可以通过多种方式轻松修复它,但在其他情况下可能会导致一些危险行为。这可能是设计使然,但它绝对是可怕的。
asp.net-mvc - 如何更改 ASP.net MVC URL
有没有一种简单的方法来生成一个新的 Route-URL 而没有这些问题。
我目前正在处理通往同一视图的多条路线,所有路线都以 /{pagenumber} 结尾
我要做的就是将所有内容删除回最后一个反斜杠并替换数字。
我试图避免使用 URL Maker,因为分页似乎有点矫枉过正,但欢迎所有建议......
这是我用于分页的方法
- 这其中的各个部分通常来自应用程序设置,我已将它们替换为要完整的数字。
asp.net-mvc - 表单发布到错误的 URL
原标题:无法修复配置错误的路线
我想根据过滤器(有 4 个可能的值)和用户输入的条件进行搜索。
我有以下路线:
和以下形式:
表单不是重定向到动作 Buscar,而是重定向到 SubLineasProductos 控制器中的动作 Index。我想我的路线错了,但我不知道如何修复它们。我已经阅读了这篇文章,并且我可以看到我的路线一切都很好。
我怎样才能解决这个问题?提前致谢。
编辑:使用 Phil 提供的工具,我可以看到,如果我测试类似的 URL
http://localhost/MyApp/SubLineasProductos/Buscar.aspx/nombre/block
它符合我想要的路线。但是当我运行我的应用程序并尝试使用在生成的 URL 具有表单之前发布的表单时:
http://localhost/MyApp/SubLineasProductos.aspx/Buscar?filtro=nombre&criterio=block
我该如何解决这个新问题?
asp.net-mvc - ASP.NET MVC 路由问题
我刚开始使用 ASP.NET MVC,我有两个路由问题。
如何在 ASP.NET MVC 中设置以下路由?
我不想在实际 url 中指定控制器以使 url 更短。如果网址看起来像这样:
这对我来说更有意义,因为我可以添加 CompanyController 并为 about-us、contact-us、staff-bios 设置 ActionResults 并返回适当的视图。我错过了什么?
Global.asax 中的默认路由规则中的“默认”名称有什么用途?它有什么用吗?
谢谢!
asp.net-mvc - ASP.NET MVC 路由 - 试图在 URL 中有一个名称
我目前有以下路线:
SpecialController 有一个方法:public ActionResult Index(int ID)
每当我将浏览器指向 时http://hostname/test/5
,都会出现以下错误:
参数字典包含“SpecialController”中方法“System.Web.Mvc.ActionResult Index(Int32)”的不可空类型“System.Int32”的参数“ID”的空条目。要使参数可选,其类型应该是引用类型或 Nullable 类型。
参数名称:parameters
描述:当前web请求执行过程中发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
这是为什么?我使用了 mvccontrib 路由调试器,似乎可以按预期访问该路由。
asp.net-mvc - ASP.NET MVC - 隐式表单操作
我有一个表单,它是部分视图的一部分,我需要根据包含表单的视图的上下文将它提交到不同的位置。我不能使用 Html.BeginForm 因为表单有一个 multipart/form-data 编码类型,所以自动填写操作是不可能的。
我可以调用一个简单的变量来填写当前的控制器/动作作为我的表单动作吗?我看到 ViewContext.RouteData.Values["action"], ViewContext.RouteData.Values["controller"] 会返回这些值,但是有更好的访问器吗?
谢谢!
asp.net-mvc - 我可以将新路线映射到 Global.asax 之外的 RouteCollection 吗?
在 Global.asax RegisterRoutes() 方法首次执行很久之后,我想偶尔在程序执行期间将新路由映射到 RouteCollection。
我怎样才能做到这一点?
c# - ViewContext.RouteData.Values["action"] 在服务器上为空......在本地机器上工作正常
我有一个奇怪的问题,其中 ViewContext.RouteData.Values["action"] 在我的登台服务器上为空,但在我的开发机器(asp.net 开发服务器)上工作正常。
代码很简单:
我在 ViewContext.RouteData.Values["action"] 行上收到错误。错误是:
异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
任何帮助表示赞赏。提前致谢。
asp.net-mvc - 在控制器操作内部/附近设置路由?
大约 10 个 stackoverflow.com 播客回复 Jeff 提到,他没有将他的路由连接到 global.asax 文件中,而是将它们放在他的控制器中,靠近这些路由将调用的操作。
如何做到这一点?
路由是否必须在路由到的控制器被击中之前注册?他在构造函数中这样做吗?我的头脑被鸡与蛋的问题搞糊涂了。