问题标签 [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 投票
1 回答
1740 浏览

asp.net - 在 Html.BeginForm() 中保留 RouteData

我一直在使用 Html.BeginForm() 方法的变体将 html 属性附加到我的表单,如下所示:

不幸的是,这会导致表单目标丢失所有路由数据。

假设我的 url 是controller/action?abc=123,然后使用Html.BeginForm()生成表单发布目标,controller/action?abc=123但是重载版本(我用来将 html id 属性添加到表单),生成目标为controller/action(这实际上是可以理解的,因为我自己指定了路线,但这并不能解决我的目的)。

是否有一个变体Html.BeginForm()可以让我保留旧的路由值并让我同时向表单添加 html 属性?

0 投票
2 回答
507 浏览

asp.net-mvc - RouteData 在由 RenderAction 调用的控制器中的 Post 上丢失

我有一个“简历”视图,它调用 RenderAction,以便我可以在简历中添加评论。代码:

所以上面的代码在我的 ResumeComment 控制器中调用 Add action 并将它传递给 resumeId。如果我查看 Add (GET) 方法中的 ControllerContext.ParentActionViewContext.RouteData,我会看到 4 个值:

0 投票
1 回答
1060 浏览

c# - 在 ASP.NET 页面上的 .asmx Web 服务中获取 Routedata

我正在使用 ASP.NET Web 表单。在我的应用程序中,我需要能够访问 URL 中用户名的路由数据。

网址看起来像这样:localhost/profile/MyRAndomUserNAme

在 On_Load 事件中接收它没有问题,如下所示:

但是,如果我在我的 Asmx WebService 中并尝试从 URL 接收用户名,它就不起作用。那么我该如何解决呢?

PS:它不是 MVC 项目,所以我不能var userName = ViewContext.RouteData.Values["UserName"];在视图上使用

0 投票
1 回答
812 浏览

asp.net - 在控制器的构造函数/属性中获取 RouteData 以路由 [Authorize] 的 ConnectionString

背景

我有一个多租户应用程序,每个租户使用多个数据库。我正在使用 CodeFirstMembership,所以我可以完全控制 SimpleMembership 的实现。我的两个用户/角色实体都与我的应用程序的其余部分在同一个 DbContext 中。

问题

为了促进多租户,我有一个自定义路由,它看起来与默认的 vanilla MVC 路由看起来完全一样,除了我抓取子域,检查有帐户的租户,然后抓取他们的特定的连接字符串。我在 RouteData 上有一个名为 .GetSubdomain() 的扩展方法,它将返回使用的子域,所以我可以真正进行检查并在任何地方获取连接字符串,如果这有助于你的答案。

我需要我的会员提供商能够访问子域检查信息,以便指向正确的数据库,以便 [Authorize] 方法正常工作。

我试过的

  • 在 InitializeSimpleMembershipAttribute 中初始化成员资格提供程序
    • 这不起作用,因为您无法将动态参数传递给属性(例如 RouteData.GetSubdomain())
  • 在构造函数中初始化成员资格。
    • 虽然您可以在构造函数中调用 RouteData 方法并构建/运行应用程序,但 RouteData 尚未在控制器中的构造函数处填充,因此此方法也不起作用。
  • 我没有尝试过,但是在每个控制器方法的开头添加检查可能不起作用,因为授权已经运行。

所以...... 根据我的尝试,似乎我需要连接到填充 RouteData 和实际授权之间的点。有没有一点我可以有效地做到这一点?

谢谢!

0 投票
1 回答
545 浏览

c# - 由于 SelectMethod,无法将数据绑定到 ListView

我有一个ListView并且我使用 的SelectMethodListView填充它。我希望将过滤器应用于从DropDownList. 我面临的问题是我不能DataBind()这样做,ListView因为SelectMethod那是用途。

所以我想我会一直改变它而DataBind()不是使用SelectMethod(更好吗?)。然后我面临的问题是我的方法是抓取[RouteData]。现在我正在将其[RouteData]作为我的方法的参数。请看下文。

下面是列表视图

如何使用DataBind()并仍然获取[RouteData]来自 URL?还是我必须使用 QueryString 来执行此操作?

0 投票
1 回答
783 浏览

asp.net-mvc-4 - MvcSiteMapProvider 不根据 RouteData 解析

我正在尝试将 MvcSiteMapProvider 与 MVC 4 站点一起使用,并且在具有(例如)项目列表页面和子项目详细信息页面的站点部分中遇到问题。

当您访问详细信息页面时,从列表中选择的实体的 ID 在 URL 中指定,例如: ~/Project/2/Detail

我没有将详细信息页面设置为动态节点,因为我不希望站点地图提供程序提供任何增强的功能。本质上,我希望站点地图提供程序忽略URL 参数,projectID并且始终只映射到 Detail 操作。

不幸的是,我遇到了以下问题:

  • 如果应用程序以针对列表页面的第一个请求开始,则用户可以单击进入任何项目,并且站点地图与详细信息页面匹配得很好。
  • 如果应用程序以对 Detail 页面的请求开始,则 SiteMap 仅在 URL 包含第一个请求的 ProjectID 时匹配 Detail 页面,即如果您访问任何其他 Project,则 SiteMap currentnode 为空。

我曾尝试禁用缓存,启用长时间缓存,甚至一直在挖掘源代码但没有成功。不一致的行为表明这是一个错误。任何帮助将不胜感激。

0 投票
2 回答
2216 浏览

asp.net-mvc - ASP.NET MVC - 在过滤器操作中设置的 RouteData 未绑定到操作方法参数

我有一个动作过滤器(除其他外),将内容添加到 RouteData。但是,我的操作方法中的参数并未获取该值。任何想法为什么?

动作过滤器:

行动方法:

请注意,我的操作方法中的以下行确实返回了保存在操作过滤器中的数据:

有谁知道为什么?

0 投票
1 回答
2600 浏览

asp.net-mvc - Url.RequestContext.RouteData.Values 不起作用?

我知道,有一种方法可用于根据路由图获取当前 URL 参数,

但是我发现当我运行这个方法时返回 System.NullReferenceException,所以我签入了 Url.RequestContext.RouteData.Values 中的所有对象,它包含两个实例,即[Key:Controller, Value: Blog][key:action, Value:BlogCommit],然后我签入我的路线图配置文件立即,并认为这很好

什么是默认配置,我的代码有什么问题?

从 URL 看起来像:

http://www.example.com:1925/Blog/BlogPost/1

根本原因是什么?或者有什么办法可以查到吗?

0 投票
1 回答
2786 浏览

asp.net-mvc-3 - 如何在控制器中获取 url id 值?

我想获取我当前 url 的 id 并在控制器中使用它。 http://localhost:14160/?id=69Request.RequestContext.RouteData.Values["id"]是返回空值。有任何想法吗?

控制器:

控制器我想在以下位置获取 ID:

0 投票
2 回答
32730 浏览

c# - 什么是 Routedata.Values[""]?

令我惊讶的是,没有任何文章可以详细回答这个问题。我有几个与RouteData.Values[""].

我看到了这段代码:

这里基本上是读取可能听起来像控制器的“元数据”的值。还是 View 也可以传递给 Controller 的东西?