问题标签 [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.

0 投票
2 回答
1937 浏览

c# - ASP.NET MVC 如何正确映射 url-routing 中的参数

我有以下路线

映射到 SegnalazioniController 类的以下方法:

链接怎么http://localhost:1387/Segnalazioni/CercaSegnalazioni/1给我错误

0 投票
4 回答
60584 浏览

asp.net-mvc - ASP.NET MVC 默认路由?

我创建了一个新的 ASP.NET MVC 项目并实现了站点授权过滤器。

当我将路由映射到该{controller}/{action}对时,我将 role = "SomeRole" default 传递给路由。

如果我通过完整的 url ( http://localhost/somecontroller/someaction) 并且我指定了完整的路线,它会完美地工作

问题是,当有人访问时http://thesiteaddress.com,必须有一个默认路由调用/home/index而不是/如果我指定

然后我失去role="SomeRole"了以前的MapRoute

我该如何解决这个问题?

0 投票
1 回答
223 浏览

c# - “安全”和 ASP.NET 路由引擎的问题

我正在开发一个 ASP.NET Web 应用程序,并希望将 ASP.NET 路由引擎 (System.Web.Routing) 与它一起使用。

我的应用程序在 Cassini 中运行良好,但是当我在 IIS7(当然是集成应用程序池)中启动它时,我总是在这一行出现错误:

这可能是什么原因?有什么解决方法吗?

0 投票
1 回答
1570 浏览

asp.net-mvc - 如何删除 MVC URL 路由中的“详细信息”,但保留其他操作不变?

我想为具有正常 CRUD 操作的控制器设置路由,但希望详细信息操作不在 URL 中显示“详细信息”。Stackoverflow 似乎配置了这种类型的路由:

使用这个类比,我的路线目前看起来像:

通过添加以下路线,我能够被Details删除:

但是,拉起控制器上的其他操作(例如/questions/new对于此示例)抱怨无法解析 id。

有没有办法设置路线,这样我就不必手动将所有其他操作(MapRoute“items/create”、“items/delete”等)手动输入到 Global.asax.cs 中?我基本上希望有第二条路线,例如:

{id}...如果匹配一个整数,并且{action}如果它是一个字符串,则让路由引擎使用路由 Q1 。这可能吗?

0 投票
2 回答
501 浏览

asp.net-mvc - Html.ActionLink 发生了什么在 ASP.NET MVC 中?

我正在阅读所有关于将 Html.ActionLink 方法与 lambda 表达式一起使用的博客。我什至在这里看到了关于它的 ScottGu 演示:http ://www.hanselman.com/silverlight/ScottGuAtAltNetConf/

这是一个博客:http ://blog.wekeroad.com/blog/aspnet-mvc-preview-using-the-mvc-ui-helpers/

这是关于它的 ScottGu 博客:http ://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

"也可以写成:

由于这是一种编写 URL 路由的强大方法——特别是因为它自动支持重构工具——为什么这明显缺失或很难找到?我查看了 Reflector 中的 System.Web.Mvc.Html.LinkExtensions,我看到了很多 ActionLink(this HtmlHelper...) 扩展方法,但没有一个是通用的。

有人有帮助吗?谢谢!!

0 投票
2 回答
2163 浏览

asp.net-mvc - 如何在我的 MVC 项目的代码隐藏中访问服务器端控件?

首先让我声明,我知道在我的视图中访问服务器端控件在 MVC 中是不受欢迎的。但是,我需要在我的情况下(据我所知)。这是我的故事。:)

我在我的 Web 应用程序中使用了第 3 方控件。我目前的任务是将我们的 WebForms 解决方案移植到 MVC。这个特定的第三方 Web 控件需要 WebForms 架构,所以我希望只使用我的 WebForms 项目中的相同代码。

最初的方法是创建两个网站(一个 WebForms 站点和一个 MVC 站点),然后使用 MVC 端的 iFrame 将这两个站点链接起来。虽然我知道这会起作用,但仅仅使用这个特定的控件有点过头了。在做了更多研究之后,我发现我可以“混合男孩”并在 MVC 项目中使用 WebForms 架构。因此,我采用的新方法是将使用此 3rd 方控件的页面复制到特定目录(即“View\SomeDir\WebForms”),然后在我的 global.asax 文件中忽略该目录,所以MVC 路由系统没有拾取它:

不幸的是,当我将 ASPX 页面复制到我的 MVC 项目时,我发现 CodeBehind 并没有授予我对页面上的控件的访问权限。这是设置的方式:

这是我背后的代码的样子:

不幸的是,我的项目甚至无法编译,因为我的 CodeBehind 中的每个控件都出现此错误。将其他控件(即标签、面板、文本框等)转换为客户端标签不是问题,但我需要在我的代码中访问此自定义控件,以便我可以收听它(服务器端) 事件并作出相应响应;基本的 WebForms 东西...

我想要做的甚至可能吗?我想到的另一种方法might是在控制器类中初始化和捕获服务器端事件。但是,我想避免在视图中序列化控件的状态,只是将其传递给控制器​​并在可能的情况下返回?

提前感谢您的任何建议!

0 投票
2 回答
4987 浏览

c# - 具有任意深度的 ASP.NET MVC 动态路由和操作链接

我想用 ASP.NET MVC 组合一个论坛/留言板。在这些类型的论坛上很常见的是分层板类别,例如:

-综合讨论
-技术支持--
网站技术支持--产品
技术支持
--产品A技术支持
--产品B技术支持

然后在每个类别下方是主题,并且消息属于这些主题。我主要关心的是 1.) 在给定 URL 的情况下到达正确的位置,2.) 在我的 URL 中不包括大量不必要的信息,以及 3.) 能够从代码重新创建 URL。

我希望一个 URL 是这样的:

现在,我已经排除了动作名称,因为它们可以根据我所在的位置推断出来。我的数据库中的每个 Board 实体都有一个“UrlPart”列,该列已编入索引,因此我希望能够对该表进行相对快速的查询,以确定我在哪里。

问题是:为了找出正确的位置,我应该使用自定义路由处理程序、自定义路由绑定器,还是应该创建模糊的路由规则?

这个建议看起来很不错,但看起来也有很多工作却没有什么好处: ASP.NET MVC custom routing for search

这似乎表明创建模型绑定会更容易: MVC Dynamic Routes

为了实现#3,我将不得不创建自己的自定义 URL 生成逻辑,对吗?

0 投票
4 回答
6255 浏览

asp.net-mvc - 树路径的asp.net mvc复杂路由

我想知道如何定义这样的路由图:

TreeMap 是从数据库中动态加载的,如下所示:

0 投票
2 回答
3637 浏览

asp.net-mvc - 为什么 ASP.NET MVC 会忽略我的斜杠?

考虑以下路线:

使用Url.Action("Service", "CustomerService")会产生一个 url/service而不是预期的/service/

有什么方法可以让它工作,还是我必须求助于实现我自己的路由RouteBase

0 投票
5 回答
61285 浏览

c# - ASP.NET MVC 模糊操作方法

我有两种相互冲突的操作方法。基本上,我希望能够使用两条不同的路线到达同一个视图,或者通过项目的 ID 或通过项目的名称及其父项(项目可以在不同的父项中具有相同的名称)。搜索词可用于过滤列表。

例如...

这是我的操作方法(也有Remove操作方法)...

这里是路线...

我理解为什么会发生错误,因为page参数可以为空,但我无法找出解决它的最佳方法。我的设计一开始就很差吗?我考虑过扩展Method #1的签名以包含搜索参数并将逻辑移入Method #2他们都会调用的私有方法,但我认为这实际上不会解决歧义。

任何帮助将不胜感激。


实际解决方案(基于李维斯的回答)

我添加了以下课程...

然后修饰动作方法...