问题标签 [routedata]

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.

0 投票
4 回答
1127 浏览

asp.net-mvc - Asp.Net MVC Beta:以前的 RouteData 会覆盖当前的 RouteData?

我有类似于以下方法的东西:

和以下路线:

在测试版之前一切正常,当我有预览版 3 时。现在该方法将在我第一次执行操作时正确填充 id。然而,控制器第二次ModelState包含上次使用的 id 值。这会导致ActionInvoker在方法的参数而不是Route值中使用它。

因此,如果我对两个不同的实体调用该操作两次,结果如下:

从我使用 Reflector 的快速扫描来看,它似乎首先将参数绑定到 ModelState,然后再绑定到 Routes。但是,我什至从未发布过模型中的任何内容。据我所知,ModelState 不应包含任何内容。

这是测试版中的错误,可能是我的代码中的某个错误,还是有一些我不知道的设计功能?感谢您对 ModelState 的性质以及发生这种情况的原因的任何见解。

编辑:我发现这个问题实际上是 DefaultValueProvider 出现错误的症状,如果您从在 Asp.Net 应用程序的生命周期中存在的 IoC 容器实例化控制器。发生的情况是 DefaultValueProvider 使用第一个给控制器的 ControllerContext 并且在重新创建控制器之前永远不会更新它。这会导致旧的 RouteData 用于方法参数,而不是当前的 RouteData。

0 投票
1 回答
18746 浏览

asp.net-mvc - 如何从 .net MVC 中的视图访问当前的 RouteData?

如果我想从 中直接访问RouteData(例如当前操作或参数值)View,而不是必须从控制器中将其作为 的一部分传入ViewData,我将使用什么类?

0 投票
1 回答
3524 浏览

asp.net-mvc - ASP.NET MVC 将列表传递给 RouteData QueryString

将值列表作为 QueryString 传递的推荐方法是

ASP.NET 处理得很好:

但我想不出将这些值传递到 RouteData 的方法。显而易见的方法是添加

进入 RouteData 并让超级智能 MVC 为我解决问题。不幸的是,在将数组传递给 RouteData 时,MVC 是转储的,它基本上调用 .ToString() 将 value=int[] 添加到我的 QueryString。

我尝试将值添加到 RouteValueDictionary (但作为字典无法处理:)

我可以尝试像这样传递值:

但这被编码为 URL

我不确定这是否是一件坏事,但它确实看起来很糟糕。

那么,如何在 ASP.NET MVC 中将值列表作为 RouteData 传递。有什么方法可以添加到 MVC 以使其处理 int []?或者底层的基于字典的数据结构是一个显示停止器,可以轻松地将值列表传递给 ASP.NET MVC?

0 投票
1 回答
2074 浏览

c# - ASP.NET MVC POST 参数到 RouteData

我正在使用 jQuery 将 Id 发布到我的路线,例如:
http://localhost:1234/Load/Delete
和 POST Parameter Id = 1

我现在只使用 Global.asax.cs 中的默认路由:

当我执行 POST 时,在我的 ActionFilterfilterContext.RouteData.Values["Id"]中设置为默认值""。理想情况下,我希望它在 URL 出现时自动使用 POST 参数值""。我知道它发布正确,因为我可以看到"1"in的值filterContext.HttpContext.Request.Params["Id"]

有没有办法让 RouteData 使用 POST 参数作为后备值?

0 投票
2 回答
2262 浏览

asp.net-mvc - 缺少 RouteData 数据令牌

我正在处理 ASP.NET MVC 中的错误,方法是将错误 id 从 Application.OnError 发送到控制器操作,方法是添加一个提供错误 id 的路由数据值:

Global.asax.cs/OnError:

然后在控制器/动作中读取它:

在我的本地机器上它运行良好,但在我尝试过的服务器上,errorKey 没有传递。

这可能是什么原因?


当站点运行 Web 服务器时,一个新的观察结果:

  • 如果我从 Web 服务器本身的浏览器访问,路由数据传输正常
  • 如果我从另一台机器访问,路由数据不会传输
0 投票
2 回答
2608 浏览

asp.net-mvc - 从控制器构造函数中的 URL 获取参数

我需要编写一些代码来在我的项目数据库中找到一个 ID。用户与一个项目耦合,所有项目都与其他对象(例如会话)有很多连接。

现在我需要在运行任何操作之前检查,如果用户试图访问会话,是否连接到与会话连接的同一个项目。

为此,我想在操作上使用 [属性]。 MVC:创建一个带有参数的自定义 [AuthorizeAttribute]?

这个问题和答案让我开始了,但我在使用控制器的构造函数来获取我的Project ID

目标是我可以在每个构造函数中编写一些代码,我的所有对象控制器取决于项目,找到项目 ID,并使其可访问(公共),因此我[customauthorize]将有权访问此项目 ID 以检查是否用户是否有权访问。

我的问题:

如何访问我的路由数据?RouteData为空,HttpContext为空,Request为空。

我需要 url 中的 ID,它在 routedata 中...

0 投票
1 回答
4868 浏览

asp.net - 如何从 .Net 4.0 中的 Web 服务获取 RouteData 值

我正在尝试使用 Web 服务从 URL 中提取 id 号,以便它可以用作 select 语句中 where 子句的参数,该语句根据记录的 id 号从数据库中生成数据。然后,该数据将被传递回页面以填充 jQuery 模式弹出窗口中的元素。

使用静态 ID 号(例如:)一切正常string postid = "120",但我不知道如何从 URL 中获取 ID 号。我在 .Net 4 中使用路由,并且在页面中访问路由的方法在 Web 服务中不起作用。在页面中,我只是做类似这样的事情var id = RouteData.Values["id"];并获取 id,但是当我在 Web 服务中这样做时,我得到了一个错误:

CS0120:非静态字段、方法或属性需要对象引用'System.Web.Routing.RouteData.Values.get'

概括:

我从一个详细信息页面访问了 Web 服务,我想在其中获取RouteData发出请求的页面。我想在页面上尽可能轻松地做到这一点,使用RouteData.Values它就像现在过时的Request.Querystring.


现在我更困惑了,因为虽然我可以轻松地为 Web 服务添加一条新路由,但我不知道我会因为 webservice.asmx/webmethod 语法而使用 jQuery Ajax 来调用它。

现在我的 jQuery Ajax 中有 URL:“../webservices/googlemaps.asmx/GetGoogleMap”,但这不是真正的 URL。它只存在于 jQuery 中的某个地方,仅使用 JavaScript 调用服务的方式也不是真正的 URL,webservice.webmethod()在这种情况下它是googlemaps.GetGoogleMap().

我将尝试为 注册路由webservices/googlemaps.asmx/GetGoogleMap/postid,但我怀疑它是否会起作用,因为GetGoogleMap它不是目录或querystring.

0 投票
1 回答
668 浏览

asp.net-mvc-3 - 带有 ViewModel 的 RouteValues

我有一个 ViewModel,它是一个非常简单的过滤器对象,如下所示:

我希望做的是做一个从另一个页面到这个页面的路由链接,并将我的 FilterViewModel 传递到路由 url 创建到 RouteValues 中,如下所示:

瞧,另一边的渲染是

我不知道我的预期,也许是像这样序列化到查询字符串中的东西:

无论如何我要做的就是开箱即用?(或不开箱即用)

0 投票
1 回答
238 浏览

asp.net - ASP.NET MVC3 ModelState and RouteData placement

in MVC3, is route data always in the modelState collection, or is it only in the modelState collection if that key is specifically requested as per the model binder for the applicable controller action ?

To illustrate:

Home/Index/5?something=else

Would the modelState dictionary have the key something and value else, or would it only have the key id?

0 投票
1 回答
971 浏览

asp.net-mvc-3 - MVC3:自定义 BaseController 中的 RouteData.Values?

在我的 MVC3 应用程序中,我的所有控制器都继承自自定义 BaseController(而后者又继承自 Controller)。有什么方法可以从这里请求的 url 获取 RouteData.Values 吗?