asp.net-mvc-routing相关内容
我有一个MVC应用程序,该应用程序已移到wwwroot的子文件夹中,并且该子文件夹已通过IIS成为应用程序.因此,在进入我的登录页面的网址之前,是这样的: www.mydomain.com/login 现在看起来像这样: www.mydomain.com/application/login 该应用程序运行正常,似乎没有影响我的应用程序中的路由或任何链接.但是,这会在我引用图
..
我的应用程序似乎运行良好,但是我在log4net日志中不断收到这些异常: The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult Agency(Int32)' in
..
我正在尝试对MVC使用正确的REST网址.为此,我从以下位置切换了默认路由: {controller}/{action}/{id} 到 {controller}/{id}/{action} 所以而不是: /Customer/Approve/23 现在有 /Customer/23/Approve ActionLink似乎可以正常运行,但是在CustomerCo
..
如果您的解决方案中有区域,请使用MVC3/4,它将尝试解决区域和根级别控制器的顺序是什么? 例如: 是否先按字母顺序尝试根级路由,然后再尝试区域级路由? 还是先按字母顺序检查区域级别的路由,然后再检查根级别? 谢谢 解决方案 MVC解析器首先针对特定区域路由,然后是根级别路由.这是因为默认情况下,您在Global.asax中具有下一个代码: protected
..
我有一个复杂的ASP.NET MVC路由方案,我希望能够使用现有路由来解析从"Referrer"请求标头中提取的URL. 我收到的传入请求看起来像这样: http://hostname/{scope}/{controller}/{action} 具有相应的路由映射: routes.MapRoute( name: "scoped", url: "{scope}/{control
..
我的目标是从名称和区域中找到一个控制器.如果我当前的httpContext与要找到的控制器在同一区域内,则我已经成功完成了此操作.但是,我无法打电话给ControllerFactory来考虑区域.这是我的代码: public static ControllerBase GetControllerByName(this HtmlHelper htmlHelper, string control
..
我正在创建URL别名功能;将资源A映射到资源B的能力. 我正在将其应用到一个项目中,该项目具有一个映射到自定义Route的通用URL,该URL解析传入的URL字符串并在数据库中查找URL部分.基本上,整个网址字符串都是动态的,并且映射到类别层次结构(例如/tyres/car/tyres/van,/suspension/ford/focus).一切正常,仅存在于路由到一个控制器的情况.
..
我想知道是否有可能以某种方式在控制器之外获取路由值? 这是我尝试过的.我也尝试做.Values["{projectId}"];,但我仍然得到null. [RoutePrefix("projects")] public class UsergroupController : ApiController { [Route("{projectId}/usergroups"), Htt
..
我有一个网站,其中列出了产品类别.我想在路由中定义的类别非常类似于www.domain.com/categoryA. 这是我的问题,如果我的数据库中有“拳击手套"类别,该如何处理类别名称中的空格? 解决方案 您可以将空格编码为%20,但这实际上并不适合使用漂亮的url.我建议您将它们转换为破折号,并在类别名称中禁止使用破折号.您还可以禁用空格并像大多数标记系统一样强制用户使用破折号.
..
我想在地址栏中显示漂亮的URL,并避免显示%20之类的空格 这里是一个例子: 是否可以将这些空格替换为破折号? 类似:/BANQUE/International-Ledger 也许在路由中要做些什么? 谢谢. 解决方案 您不想替换生成的路由中的空格,而不想首先生成它们. 您的“国际分类帐"是什么?如果是动作,则使用[ActionName("Interna
..
我的主页上有一个下拉列表,其中包含部门列表.现在,我有几个页面根据部门选择和更改显示记录列表. 因此,当用户从下拉列表中选择新部门时,我会向MVC控制器进行AJAX调用,并将部门ID发送到该控制器,并将其存储在会话中,并在所有页面上使用该会话,因为我的所有页面都是由部门驱动的./p> 实施方式: @{ int departmentId = 0; int.TryPars
..
public class HomeController : Controller { [Route("Users/about")] [Route("Users/WhoareWe")] [Route("Users/OurTeam")] [Route("Users/aboutCompany")] public ActionResult GotoAbout()
..
这是复制问题的步骤. 开始新的mvc 4项目. 在“默认"路由之前,将以下几行添加到RegisterRoutes()方法中 routes.MapRoute( name: "Test", url: "Test/{action}", defaults: new { controller = "Test", action = "Index
..
我有一个带有DefaultController的mvc应用程序,该应用程序映射到index.cshtml 所以 http://localhost:/Default/Index 正常工作. 但是默认的根页面: http://localhost:/ 没有映射到任何东西. 如何将其映射到我的默认值/索引? 这是我的RouteConfig.cs: u
..
我有一条通过RedirectToRoute调用的路由,如下所示: return this.RedirectToRoute("Super-SuperRoute", new { year = selectedYear }); 我也尝试过: return this.RedirectToRoute("Super-SuperRoute", new { controller = "Super
..
我有几种方法,我想遵循其网址的特定模式. 基本上有一些餐厅,这些餐厅都有ID,并在其下面有一系列的终端机. 我正在尝试出现以下几种模式: api/餐厅-获取所有餐厅 api/Restaurant/Bobs-获取具有Bobs ID的餐厅 API/餐厅/鲍勃/码头-获取鲍勃餐厅的所有码头 api/Restaurant/bobs/terminals/second-在餐厅bob中获取ID为se
..
http://localhost:49397/ChildCare/SponsorChild/83 这是链接,当我单击表中的操作链接并重定向到“编辑操作"时会生成该链接,现在我想在URL中隐藏数字"83",我该如何做到这一点, 我正在使用VS2010 MVc4剃须刀, 对不起,我的英语不好 预先感谢 解决方案 如果使用链接,则GET请求将链接发送到服务器,则参数位于url中.可能
..
ControllerActionInvoker类的用途是什么? 解决方案 基本上,它是Controller类的可扩展性,它使您可以进入该类并影响控制器与参数,过滤器和Action本身的交互方式.将请求路由到控制器后,控制器会要求ControllerActionInvoker处理该请求(通常涉及到它在控制器上调用方法). 到目前为止,我看到的主要用法是将依赖项注入到动作过滤器中,如下所
..
给出以下两个网址: /员工/列表/活动 /员工/列表/无效 如何将url的活动/非活动部分映射到布尔操作方法参数(活动为true,非活动为false)? [Route("employee/list")] public ActionResult List(bool? active = null) 解决方案 枚举是正确的方法,因为它允许您将来轻松添加新状态: [
..
给出以下路线: routes.MapRoute("Test", "test", new { controller = "Test", action = "Index" }); routes.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id =
..