问题标签 [mvcroutehandler]

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 投票
2 回答
2260 浏览

c# - MVC C# 自定义 MvcRouteHandler - 如何?

有没有人有提供自定义 MvcRouteHandler 的经验?在我的应用程序中,我想实现一个像http://mydomain/en/abouthttp://mydomain/de/about这样的全球化模式。

至于持久性,我希望在请求到达后立即读取 cookie,如果此 cookie 中有语言设置,请应用它(因此到达http://mydomain/的用户将被转移到http:// /mydomain/en/例如)。如果没有 cookie,我想获得浏览器支持的第一种语言,应用这个并将其存储在这个 cookie 中。

我想这不能用 mvc 在它的初始项目模板中提供的标准路由机制来完成。在新闻组中,我得到了查看 MvcRouteHandler 并实现我自己的提示。但是很难找到如何做到这一点的样本。

有任何想法吗?

0 投票
1 回答
271 浏览

asp.net-mvc - MVC n级路由构建

我想创建一个包含 N 级类别的产品目录

例如

这是可能的,如果是的话,怎么办?

0 投票
1 回答
978 浏览

asp.net-mvc-3 - MVC3 RouteHandler 结果忽略已解析路线中的区域 - 为什么?

我正在将 MVC3 应用程序拆分为两个区域。现有应用程序正在进入一个区域 (V1),我们正在开始重新设计第二个区域 (V2)。

我将视图、模型、控制器等都移到了 MyApp\Areas\V1\xxx 文件夹中,并且我已经能够验证大部分内容是否正在加载。我将 V1 的所有 Route 注册移动到 V1AreaRegistration.cs 文件中,并将其修改为使用context.MapRoute而不是RouteTable.Routes.MapRoute.

使用 Phil Haack 的 RouteDebugger 查看路由,一切看起来都不错——我的 V2 路由正在按应有的方式解析,并且基本的 V1 路由正常工作。什么不起作用是我有一个自MvcRouteHandler定义定义的 V1 路由,例如:

如果我_myCustomRouteHandler从此调用中删除 ,它会很好地工作并将我发送到 V1 区域下的正确视图。有了它,路由似乎忽略了它被注册为区域路由的事实,我得到一个黄色错误页面,上面写着:

我需要能够使用路由处理程序——它对{myRoutVal}参数进行一些验证工作,如果它无效则重定向到错误页面。

帮助!!

0 投票
1 回答
890 浏览

asp.net-mvc-3 - MVC 3 HyphenatedRouteHandler 不兼容区域和重复的控制器名称

我对 MVC3 还很陌生,但是我花了很多时间研究和测试,但我找不到解决方案。Stack 上还有另一个类似的帖子,但 7 个月后仍未得到答复。

症结在于:如果您有重复名称的区域和控制器 - 没问题。如果您有区域并使用 HyphenatedRouteHandler - 没问题。如果您尝试使用区域、重复的控制器名称和带连字符的路由处理程序,则会收到错误消息:

找到了与名为“产品”的控制器匹配的多种类型。如果服务此请求的路由 ('{controller}/{action}/{id}') 未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用“namespaces”参数的“MapRoute”方法的重载来注册此路由。

我还应该补充一点,我在根控制器上收到错误,但不是该区域内的控制器。例如,/products 不起作用,但 /admin/products 起作用。

我将永远感激一个具体的解决方案!代码如下所示:

全球.asax

和:

AdminAreaRegistration.cs

0 投票
1 回答
124 浏览

asp.net - .NET MVC URL 路由帮助

我正在尝试在我的 .NET MVC 应用程序中配置一个 ErrorController,但我目前无法在控制器上执行任何操作,所以我相信这可能是因为我需要在global.asax中注册 URL 路由

错误控制器如下:

我希望能够分别通过以下 URL 调用上述操作。

~/Error/
~/Error/通用
~/Error/NotFound

我相信在Global.asax文件中,我需要使用以下内容注册这些路由:

我将如何为此添加/指定正确的路由处理程序?

0 投票
1 回答
3799 浏览

asp.net-mvc - 如何在 MVC3 的自定义路由处理程序中指定命名空间?

我写了一个自定义路由处理程序。因为我的网站中有控制器名称冲突的区域,所以我收到错误:找到与名为...的控制器匹配的多种类型

我想我需要在我的处理程序中指定一个命名空间,对吧?

我尝试了以下方法,但均无效:

正确的方法是什么?

注意:因为我的处理程序进行数据库查找并根据结果选择不同的控制器,所以我不能在 Global.asax.cs 文件中使用基本的 MapRoute() 方法(据我所知)。

0 投票
1 回答
158 浏览

c# - RequireHttpsAttribute 和加密的请求数据

我有一个接受敏感数据的控制器操作。

为确保数据安全,我希望确保某些请求是使用 HTTPS(SSLv3、TLS 1)发出的。我考虑使用的方法之一是我的操作中的 RequireHttpsAttribute:

但是,在对此进行测试时,我的提琴手透露,对该操作发出的 HTTP 请求是 302 重定向到 HTTPS。我的问题是这样的:

如果我发出了一个 302 重定向到 HTTPS 的请求,我是否已经在重定向之前通过 HTTP 发送了敏感数据?

0 投票
1 回答
753 浏览

asp.net-mvc-4 - MVC4 中默认传递 RouteValueDictionary

我在升级到 MVC4 时遇到了一个问题,我想知道是否有其他人看到过这个问题以及如何解决它。每当我将 IDictionary、Dictionary 或 RouteValueDictionary 放入操作的参数列表时,都会传递该 MVC 调用的路由值。

要重现此问题,请使用默认 Internet 应用程序设置创建一个 MVC4 Web 项目并添加

到 Index 控制器的参数列表,并在方法中放置一个断点。您将看到 IDictionary 参数由模型绑定器使用路由值填充。

我该如何关闭它,或者解决这个问题?

0 投票
1 回答
3287 浏览

asp.net-mvc - 使用 ASP.net MVC 从不同目录路由静态文件,无需更改 IIS 并进行身份验证

让我为我的应用程序的单个用户存储内容:

  • C:\文件{GUID}\

这些文件可能类似于:

  • C:\文件{GUID}\bunny.jpg
  • C:\Files{GUID}\unicorn.html

最终用户应该看到一个“友好”的 url。

http://domain.com/files/{GUID}/bunny.jpg

该 url 必须以某种方式通过控制器或 httpmodule 或 thingIdontknow 才能被授权查看该文件。这些权限可能每天都在变化,因此需要经常检查文件的权限。

从我一直在阅读的内容来看,这是完全可能的,但我不确定接下来要编写什么代码,或者是否有人对此有任何见解。HttpModule 还是控制器?我对需要发生什么感到困惑。

0 投票
1 回答
1703 浏览

forms - MVC.NET 自定义根处理程序 Html:BeginForm 中的错误操作

我使用了自定义 mvc 路由处理程序。但是当我在视图中使用 Html.BeginForm 或 Ajax.BeginForm 时,Action 参数会意外更改。我的代码在上面

我的注册路线方法是:

我的 MvcRouteHandler 是:

我的观点是:

最后浏览器中的错误操作如下所示:

form action="/man-parfume" data-ajax="true" data-ajax-method="Post" id="form0" method="post"> form action="/man-parfume" method="post" > 输入类型="提交" 值="发送" />

我以开始形式将控制器编写为主页,但在呈现 Html.BeginForm 时它发生了变化。

如何将表格发布到主页/索引?