首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ASP.NET MVC 3中以编程方式创建routeValues(匿名类型)

好的,我可以为您回答这个问题。

在ASP.NET MVC 3中,可以使用RouteValueDictionary对象来以编程方式创建routeValues。RouteValueDictionary是一个字典类,其中包含要传递给路由处理程序的值。这些值可以是字符串、数字、布尔值、文件等。

下面是一个示例代码片段,演示如何使用RouteValueDictionary创建一个匿名类型:

代码语言:csharp
复制
// 创建一个RouteValueDictionary对象
RouteValueDictionary routeValues = new RouteValueDictionary();

// 添加一个路由参数
routeValues.Add("controller", "Home");
routeValues.Add("action", "Index");

// 将RouteValueDictionary对象传递给路由处理程序
context.RouteData.Values = routeValues;

在这个示例中,我们创建了一个RouteValueDictionary对象,并添加了一个路由参数,即将控制器设置为"Home",将动作设置为"Index"。然后,我们将这个RouteValueDictionary对象传递给路由处理程序,以便在路由匹配过程中使用。

需要注意的是,RouteValueDictionary对象需要使用HttpContext.Current.RouteData.Values属性来获取。在ASP.NET MVC应用程序中,这个属性默认情况下是空的,因此需要手动设置。

希望这个回答对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET Core MVC应用模型的构建: Controller的收集

编程的角度来看,一个MVC应用是由一系列Controller类型构建而成的,所以对于一个代表应用模型的ApplicationModel对象来说,它的核心就是Controllers属性返回的一组ControllerModel...DefaultApplicationModelProvider还会提取标注Controller类型上实现了IRouteValueProvider接口的特性,并利用对应的设置来填充RouteValues...ControllerModel对象的ApiExplorer属性返回的ApiExplorerModel对象很明显是通过标注类型上的ApiExplorerSettingsAttribute特性创建的,而它的...图2 自定义IControllerModelConvention实现类型定制Controller模型 ASP.NET Core MVC应用模型的构建[1]: 应用的蓝图 ASP.NET Core MVC...应用模型的构建[2]: 应用模型 ASP.NET Core MVC应用模型的构建[3]: Controller模型 ASP.NET Core MVC应用模型的构建[4]: Action模型

9510

ASP.NET MVC路由扩展:链接和URL的生成

为了编程的方面,ASP.NET MVC为了设计了HtmlHelper和UrlHelper这两个帮助类,我们可以通过调用它们的ActionLink/RouteLink和Action/RouteUrl根据注册的路有规则生成链接或者...System.Web.Mvc.Html.LinkExtensions中,我们为HtmlHelper定义了如下所示的一系列ActionLink方法重载。...我们将RouteHelper定义创建的一个ASP.NET Web应用中,如下面的代码片断所示,RouteHelper具有RequestContext和RouteCollection两个属性,前者构造函数中指定...页面加载事件处理方法中,我们根据手工创建的HttpRequest和HttpResponse创建一个HttpContext对象,并进一步创建HttpContextWrapper对象。..., IDictionary htmlAttributes); 14: } ASP.NET MVC路由扩展:路由映射 ASP.NET MVC路由扩展:链接和URL的生成

1.7K70
  • 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现:路由整合

    MVC应用 整个MVC框架建立路由中间件(《ASP.NET Core 3框架揭秘》下册具有对路由中间件的专门介绍)上。...,它帮助我们完成基于Controller的MVC编程模式下的路由终结点的创建。...不论是采用何种路由方式,用来描述当前Action的ActionDescriptor对象都会元数据的形式添加到路由终结点的元数据集合中(对应于Endpoint类型的Metadata属性),ProcessRequestAsync...用于注册Action的 IActionInvoker对象是MVC框架最为核心的对象,针对Controller的MVC编程模型下,这个对象的类型为ControllerActionInvoker,接下来我们将采用...四、模拟框架构建一个MVC应用 到目前为止,模拟MVC框架的雏形已经构建完毕,我们解析来着它上面创建一个简单的MVC应用。

    1.2K30

    了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResultRedirectToRouteResult

    [本文已经同步到《How ASP.NET MVC Works?》...构造函数中既可以将状态码设置成一个整数,也可以HttpStatusCode枚举形式来指定状态码。...如下面的代码片断所示,RedirectToRouteResult没有了表示重定向目标地址的Url属性,取而代之的是表示路由注册名称和路由参数的RouteName和RouteValues属性,进行重定向时就是根据这两个属性根据注册的路由解析出具体的重定向地址的... 了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult 了解ASP.NET MVC几种...ActionResult的本质:FileResult 了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult 了解ASP.NET MVC

    1.2K100

    ASP.NET Core 6框架揭秘实例演示:利用路由开发REST API

    ASP.NET的路由是通过EndpointRoutingMiddleware和EndpointMiddleware这两个中间件协作完成的,它们ASP.NET平台上具有举足轻重的地位,MVC和gRPC框架...,Dapr的Actor和发布订阅编程模式都建立路由系统之上。...为了确保路由参数值的有效性,进行中间件注册时可以采用内联(Inline)的方式直接将相应的约束规则定义路由模板中。...我们管理员(Administrator)身份打开文件Hosts “%windir%\System32\drivers\etc\hosts”,并以如下所示的方式添加了针对两个域名的映射。...如果希望对返回对象具有明确的控制,最好返回一个IResult对象(或者Task和ValueTask),IResult相当ASP.NET MVC中的IActionResult

    74220

    模拟ASP.NET Core MVC设计与实现

    前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说:“我最近在看ASP.NET Core MVC的源代码,发现整个系统太复杂,涉及的东西太多,完全找不到方向,你能不能按照《200行代码...,7个对象——让你了解ASP.NET Core框架的本质》这篇文章思路剖析一下MVC框架”。...ASP.NET Core MVC支持基于Controller和Page的两种编程模式,虽然编程方式看起来不太一样,底层针对请求的处理流程其实是一致的。...接下来,我同样使用简单的代码构建一个Mini版的MVC框架,让大家了解一下ASP.NET Core MVC背后的总体设计,以及针对请求的处理流程。[源代码从这里下载]。...接下来我们模拟框架中最简单的方式完成“路由注册”。

    30530

    Ajax.BeginForm()知多少

    ASP.NET MVC中,Ajax.BeginForm扮演着异步提交的重要角色。其中就有五个重载方法,但是实际应用中,你未必使用的得心应手,今天我们就从主要的参数来一探究竟。...三、routeValues 用来传递参数,支持两种数据类型(两种传参方式): object类型可以使用时直接匿名方式声明,使用非常方便 举例:new { id = 1, type = 1 } RouteValueDictionary...类型实现了IDictionary接口,因此使用时可以用键值对方式声明 举例:new RouteValueDictionary{ {"id", 1}, {"type", 1} } 四、htmlAttributes...也支持两种赋值方式: object类型可以使用时直接匿名方式声明,使用非常方便 举例:new{id = "frm", @class = "cls" }由于class是C#中的关键字,因此需要在前面加...Confirm,就是提交时会弹出一个确认框,一般不常用。 new AjaxOption(){Confirm:"确认提交?"} HttpMethod,就是设置请求类型,默认为post。

    2.3K60

    ASP.NET Core 2.0 建立规范的 REST API -- 预备知识

    创建ASP.NET Core项目 打开VS2017, 选择ASP.NET Core Web Application项目模板, 写好名字, OK. ? 选择空模板, OK: ?...ASP.NET Core项目里可以通过多种方式创建Controller,当然最建议的方式还是通过继承AspNetCore.Mvc.Controller这个抽象类来建立Controller。...还有其它的方式创建Controller,按约定类名Controller结尾的POCO类也会被认为是Controller,例如: ?...为MVC定义路由有两种方式:使用IRouteBuilder或者使用基于属性标签的路由。针对Rest,最好还是使用基于属性标签的方式。...ASP.NET Core内置支持两种方式来进行自定义验证:通过继承ValidationAttribute来创建自定义验证属性标签,或者让实体实现IValidatebleObject接口。

    1.7K00

    为什么ASP.NET Core的路由处理器可以使用一个任意类型的Delegate

    请求处理器通过RequestDelegate来表示,但是当我们进行路由编程的时候,却可以使用任意类型的Delegate作为处理器器,这一切的背后是如何实现的呢?...二、参数绑定 既然可以将一个任意类型的委托终结点的处理器,意味着路由系统执行委托的时候能够自行绑定其输入参数。这里采用的参数绑定策略与ASP.NET MVC的“模型绑定”如出一辙。...Microsoft.AspNetCore.Mvc”命名空间下,因为它们原本是为了ASP.NET MVC下的模型绑定服务的。...我们将五个参数组合成一个匿名对象作为返回值。...注册的终结点处理器委托类型为参数,指定的参数名称为“foobar”。我们发送的请求中查询字符串的形式提供对应的表达式“(123,456)”,从返回的内容可以看出参数得到了成功绑定。

    13210

    如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性

    本文中,我将展示如何创建action/page过滤器来为您记录这些属性,以便中间件可以在后续创建日志时访问。 Serilog的创建者Nicholas Blumhardt之前已经解决了这个话题。...ASP.NET Core团队一直努力将更多MVC特定功能(例如模型绑定或操作结果)从MVC中移除,然后“下推”到核心框架中。...NET Core MVC中有多种类型的过滤器,每种类型的过滤器MVC过滤器管道中的有着不同的用途(有关更多详细信息,请参见此文章)。本文中,我们将使用最常见的过滤器之一,即Action过滤器。...如果要记录其他集中MVC过滤器中的值,则可以相同的方式实现其他过滤器,例如资源过滤器,结果过滤器或授权过滤器。...本文中,我将展示如何自定义Serilog,RequestLoggingOptions重新添加特定于MVC的其他属性。

    3.6K10

    基于ASP.NET core的MVC站点开发笔记 0x01

    创建项目 新建一个空目录,例如mvc-test。 使用命令dotnet new查看可以新建的项目类型: ?...注:dotnet core 3版本里,取消了WebHost,使用Host更通用的方式进行程序托管。...Controller和Action 开始MVC路由之前,先来学习一下Controller和Action他们的关系以及如何创建。...Controller如何创建,默认情况下满足下面的条件就可以作为一个Controller: 项目根目录的Controllers中 类名称Controller结尾并继承自Controller,或被[Controller...好,扯了半天报错,还是回到mvc路由上,上面是简单演示了一下Startup中如何创建路由,其实mvc路由有两种定义方式: 约定路由:上面使用的方式就是约定路由,需要在Startup中配置; 特性路由:

    87210

    Asp.Net Core中使用ModelConvention实现全局过滤器隔离

    一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFilter,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器...、Filter等等,而Asp.Net Core框架本身内置一套规则(Convention)用来处理这些模型,同时也提供了接口给我们自定义约定来扩展模型实现更符合需要的应用。...和应用程序模型有关的类都定义命名空间Microsoft.AspNetCore.Mvc.ApplicationModels中,这些模型通过IApplicationModelProvider 构建出来,Asp.Net...Asp.Net Core MVC框架提供的ServiceFilter可以解决这个问题,ServiceFilter本身是一个过滤器,它的不同之处在于能够通过构造函数接收一个Type类型的参数,我们可以在这里把真正要用的过滤器传进去...总结 总体来说,我通过曲线救国的方式实现了全局过滤器隔离,虽然去遍历目标控制器再手动添加Filter的方式没有那种一行代码就能实现的方式优雅,但我大体来说还算满意,是目前能想到的最好办法。

    1.2K40

    快速入门系列--MVC--06视图

    到了View的呈现板块,感觉ASP.NET MVC的学习也进入了尾声,还是比较开心的,毕竟也有了不小收获。这部分内容相对比较简单,因为之前还专门学习过如何结合HTML5与MVC框架。...ViewModel,使用强类型时,为了方便,推荐将其加入配置文件中,如下所示。...(设定好Model后)通过基架模板Scaffold template(T4模板)新建视图时,支持Empty、Create、Delete、Details、Edit、List等类型的视图。...最后一点是,可以通过部分视图的方式,来满足Ajax调用的需要,这个需要时html文件,而仅仅是json要注意。...ASP.NET MVC4框架揭秘[M]. 上海:电子工业出版社, 2012. 390-444 [2](美)加洛韦. ASP.NET MVC 4高级编程(第4版)[M].

    1.2K100

    ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 + 项目准备

    ASP.NET Core项目里可以通过多种方式创建Controller,当然最建议的方式还是通过继承AspNetCore.Mvc.Controller这个抽象类来建立Controller。...还有其它的方式创建Controller,按约定类名Controller结尾的POCO类也会被认为是Controller,例如: 针对POCO类, 即使名称不是以Controller结尾,仍然可以把它作为...为MVC定义路由有两种方式:使用IRouteBuilder或者使用基于属性标签的路由。针对Rest,最好还是使用基于属性标签的方式。...ASP.NET Core内置支持两种方式来进行自定义验证:通过继承ValidationAttribute来创建自定义验证属性标签,或者让实体实现IValidatebleObject接口。...针对上面的firstConfig.json文件, 我们创建以下这个类: 然后调用IConfiguration的Bind扩展方法来把键值对集合对值映射到这个强类型对POCO实例里: 标准的ASP.NET

    2.7K72

    MVC 到使用 ASP.NET Core 6.0 的Minimal API

    2012 年,也许是由于 ReSTful API 的日益流行,借鉴了 ASP.NET MVC 的许多概念又引入了 ASP.NET Web API,这是对 WCF 的重大改进,使开发人员能够更少的仪式构建...后来, ASP.NET Core 中,用于构建网站和 API 的单一框架,这些框架被统一到了 ASP.NET Core MVC 中。...ASP.NET Core 6.0 旨在通过 Minimal API 弥合这一差距,更少的仪式提供 ASP.NET MVC 的许多功能。...英语习惯于使用空格分隔单词,但是这种用法会给编程语言带来麻烦,因此程序员创建了其他方法,蛇形命名法就是用下划线分隔两个字符,使其可读性更强)。您可以在此处[15]找到上述策略的源代码。...MVC MVC 应用程序中,使用[Authorize]属性装饰您的控制器和/或操作指定您的授权要求。此属性允许您指定角色和策略。

    7.6K10

    使用 ASP.NET Web API 构建超媒体 Web API

    通过启用超媒体,您可以创建可自我发现的 API。这没有为不提供文档找借口,但是 API 可更新性方面更灵活了。 可以使用哪些超媒体项目主要由所选的媒体类型决定。...您可以通过定义表示超媒体的方式来利用这些媒体类型,但是这要求客户端了解超媒体语义在其上是如何定义的。...格式化程序实现形式知道如何处理特定媒体类型,以及如何将它序列化或反序列化为具体的 .NET 类型。过去 ASP.NET MVC 中对新媒体类型的支持十分有限。...,重写方法 CanWriteType/WriteToStreamAsync 支持将 .NET 类型序列化为指定的媒体类型格式。...此步骤几乎可以用与 ASP.NETASP.NET Web API 自托管中相同的方式来实现,只是所需的 HttpConfiguration 实现不同。

    2.8K50
    领券