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

如何在没有继承Controller的类中创建actionlink?

在没有继承Controller的类中创建ActionLink可以通过以下步骤实现:

  1. 引入System.Web.Mvc命名空间,以便使用HtmlHelper类。
  2. 创建一个HtmlHelper对象,可以通过在方法中传入ViewContext对象和RouteCollection对象来实现。
  3. 使用HtmlHelper对象的ActionLink方法来创建ActionLink。

下面是一个示例代码:

代码语言:csharp
复制
using System.Web.Mvc;

public class MyClass
{
    public string GenerateActionLink()
    {
        // 创建ViewContext对象
        var viewContext = new ViewContext();

        // 创建RouteCollection对象
        var routeCollection = new RouteCollection();

        // 创建HtmlHelper对象
        var htmlHelper = new HtmlHelper(viewContext, routeCollection);

        // 使用HtmlHelper对象的ActionLink方法创建ActionLink
        var actionLink = htmlHelper.ActionLink("Link Text", "ActionName", "ControllerName");

        return actionLink.ToString();
    }
}

在上述示例中,我们创建了一个名为MyClass的类,其中包含了一个GenerateActionLink方法。在该方法中,我们首先创建了一个ViewContext对象和一个RouteCollection对象,然后使用这两个对象来创建一个HtmlHelper对象。最后,我们使用HtmlHelper对象的ActionLink方法来创建ActionLink,并将其转换为字符串返回。

需要注意的是,由于没有继承Controller类,因此在没有相关的上下文信息的情况下创建ActionLink可能会受到限制。在实际应用中,建议在Controller中创建ActionLink,以便能够更好地获取和处理相关的上下文信息。

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

相关·内容

  • ASP.NET 5系列教程 (三):view components介绍

    它负责控制应用某一功能模块,例如: 动态导航菜单 标签云 登录面板 购物车 最近文章 博客侧边栏 假如使用VC 创建了登录面板,可以在很多场景调用,例如: 用户没有登录 用户已登录,需要退出使用其他帐号登录或者管理其他帐号...VC 包含两部分, (一般继承于ViewComponent) 和调用VC中方法Razor 视图。...类似于ASP.NET 控制器, VC 可以作为POCO使用,但是更多用户倾向于使用从 VewComponent中继承而来方法和属性。 VC创建方式有: 继承ViewComponent....创建名为ViewComponents文件夹,View component 可以包含在工程任何文件夹下。 2....如果 VC 调用方法没有传递视图名称 (例子中所示),那么默认情况下则调用视图名称对于方法。在后续文章,将阐述如何传递视图名称。

    1.7K60

    ASP.NET MVC 5 -从控制器访问数据模型

    在本节,您将创建一个新MoviesController,并在这个Controller里编写代码来取得电影数据,并使用视图模板将数据展示在浏览器里。...在开始下一步前,先Build一下应用程序(生成应用程序)(确保应用程序编译没有问题) 在解决方案上,用鼠标右键单击Controller文件夹,点击新增,再选择Controller。 ?...在接下来教程,我将展示如何做到这一点。现在,只需输入整数,10。...当创建操作方法和视图时, Visual Studio scaffolding机制(也就是通过一个强类型模型)使用了MoviesController和视图模板。...请注意这些代码是如何在Index操作方法创建List对象,并调用View方法

    5.9K50

    精通MVC3摘译(2)-生成URL

    处理发来URL只是MVC一部分,我们也需要生成一些URL植入到我们view,让用户点击,并提交表单到目标controller和action,下面会介绍一些生成URL技巧。...此链接会在view显示,但是用户点击时候没有任何反应 第一个满足标准路由会生成一个非空URL,然后会终结URL生成进程,参数值也会被赋值。...下面演示了设置id属性和css: @Html.ActionLink("About this application", "Index", "Home", null, new {id = "myAnchorID...", @class = "myCSSClass"}) 我们创建一个新匿名方法,包含id和class属性,传递给ActionLink方法。...之前提过,路由系统在处理URL时候对controller和action没有任何概念,这就可以让路由系统可以更广泛使用在其他ASP.NET应用程序。

    81410

    ASP.NET MVC 重点教程一周年版 第八回 Helper之演化

    凡事出现必有原因 就像Filter,它是为了解决在一Action之前或之后执行统一代码而产生。 而Helper则是为了方便View开发而产生。...下面我们来解决几个问题,来看看Helper是怎么演化出来。 起 题目:如何在View写一个超级连接连接到主页?...这个问题看起来很好回答: 首页 承 其实上面这种不能称之为方案写法其实是最好没有调用任何方法,仅用纯HTML就解决了问题。...就像原来 routes.MapRoute( "Default", "{controller}/{action...可以应对变化,可是还有一个问题就是href=””这种方式在VS是很难智能感知和调试,所以要有一种很好调试方式于是就产生了最初HtmlHelper <%=Html.ActionLink(

    31820

    ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景

    表单输入和提交场景 为示范如何在ASP.NET MVC框架处理表单输入和提交场景一些基本原则,我们将建造一个简单产品列表,产品生成,和产品编辑场景。...我们定义这些辅助方法有2个原因: 1)避免在我们Controller中直接嵌入我们LINQ查询,2) 将允许我们在将来更容易地改变我们控制器以使用dependency injection(依赖注入...,选择“添加新项” -> “MVC 控制器”来创建这个: ?...在ASP.NET MVC框架,表单输入和编辑场景一般是通过在Controller上呈示2个Action方法来处理。...在第一个预览版,只有"ActionLink"方法是内置于System.Web.Extensions(目前实现核心ASP.NET MVC框架程序集)

    5.1K70

    Asp.Net MVC4入门指南(5):从控制器访问数据模型

    在本节,您将创建一个新MoviesController,并在这个Controller里编写代码来取得电影数据,并使用视图模板将数据展示在浏览器里。...在开始下一步前,先Build一下应用程序(生成应用程序)(确保应用程序编译没有问题) 用鼠标右键单击Controller文件夹,并创建一个新 MoviesController控制器。...当创建操作方法和视图时, Visual Studio 基础结构机制使用了MoviesController和视图模板。...请注意这些代码是如何在Index操作方法创建List对象,并调用View方法。...右键单击Movies表,选择打开表定义查看Entity Framework代码优先所创建表结构。 ? ? 请注意,如何将Movies表表结构映射到您早些时候所创建Movie

    4.2K50

    ASP.Net MVC框架配置与分析

    实际上就是我们熟悉Default.aspx.cs文件,继承自System.Web.UI.Page 文件 3、View就是aspx文件了 而今,微软推出了新MVC开发框架,也就是Microsoft...而在项目中引用新文件时候,也会增加MVC页面。 ? 在创建MVC项目以后,会增加以下文件 ? 访问机制是通过URL重写实现。因此,你需要设置IIS映射。 ?...不能删除掉     //controller ="Home"设置是访问路径,这里对应上图中Home目录,也对应了HomeController名    //action是对应HomeController.cs...Index方法。    ...最后要说明是Html.ActionLink("About Us", "About", "Test")方法,能够实现自动链接处理, 参数1是 链接显示文字 参数2是 要访问文件 参数3是 访问目录

    1.5K100

    探寻ASP.NET MVC鲜为人知奥秘(3):寻找多语言最佳实践方式

    如果你网站需要被世界各地的人访问,访问者会使用各种不同语言和文字书写习惯,那么创建一个支持多语言网站就是十分必要了,这一篇文章就讲述怎么快速合理创建网站对多语言支持。...然后在Models添加一个示例模型: public class Employee { [Display(Name = "Name", ResourceType = typeof...这是一个单独项目,用来存放各种语言资源文件,我们创建了三个资源文件,分别存放了中文(默认)、英文和阿拉伯文,资源文件存放了如下资源项: ? ? ?...首先需要创建一个CultureHelper,这个功能就是来判断访问者实际需要语言类型: public class CultureHelper { private static...BaseController,并且确保之后创建所有控制器继承自它: public class BaseController : Controller { protected

    89380

    ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

    在ASP.Net MVC微软并没有提供类似服务器端控件那种开发方式,毕竟微软MVC就是传统请求处理响应回归。所以抛弃之前那种事件响应模型,抛弃服务器端控件也理所当然。   ...思考这样一个场景:我们项目第一个版本路由规则是这样{controller}/{action}/{id},于是我们项目中所有的标签所指向都是以刚刚规则命名href(例如:<a href...但是在第二版,我们路由规则也会变成了{controller}-{action}-{id},那么我们刚刚为超链接所设置href便都无法正常访问了。...二、没有服务器控件也能干大事—HtmlHelper重要方法介绍 PS:这里实例均没有加或@符号,要运行请自行加上。   ...例如我们要输出刚刚那句话,我们可以如下使用: 哈哈") %>   其生成代码为: 哈哈   在HtmlHelper还提供了许多扩展方法供我们方便创建

    70120

    .NETMVC 使用过滤器完成未登录拦截

    大家好,又见面了,我是你们朋友全栈君。 实现功能:当程序未登录时不能通过URL访问其他页面。 具体:未登录时访问其他页面会自动跳转到登陆页面。 1.创建MVC项目 不过多累述。...2.创建过滤器 如图可创建一个文件夹,把拦过滤器收录在内。...System.Web.Mvc; namespace ContosoUniversity.Helper { public class ActionFilter : ActionFilterAttribute //继承过滤器...url } } } } 3.设置Session 如图在自己登入成功代码段设置参数。...4.设置过滤器 在自己Controller每一个方法上添加 [Helper.ActionFilter] 即可。 自此未登录拦截已经完成了。可自己运行程序通过url访问其他页面进行判断。

    75710

    Asp.net mvc 知多少(三)

    可以通过实现IViewEngine 接口或者继承 VirtualPathProviderViewEngine 抽象来实现自定义视图引擎。...(View State、Session) 没有自动状态管理 基于文件路径路由 基于路由Urls 统一文件后缀 .cshtml(C#) 视图后缀为.aspx,分部视图或编辑模板为.ascx View...主要有三种Html Helpers: 1、** Inline Html Helpers **- 通过Razor@helper标签创建帮助,只能在同一个view中使用。...3、 Custom Html Helpers - 可以通过扩展HtmlHelper或者通过创建在工具创建静态方法来创建自定义Html Helper。...ASP.NET MVC提供了基于jquery非侵入ajax。非侵入式ajax意味着通过使用帮助方法去定义ajax功能而不是通过在view添加js代码块。 Q38.

    2.3K60

    精通MVC3摘译(3)-自定义路由系统

    创建基于RouteBase 接口 如果你不喜欢标准路由对象匹配URL方式,或者你想实现一些特殊接口,你可以从RouteBase中继承一个。...在此,我们演示这种自定义方式,我们创建一个RouteBase,该类会处理继承URL请求。...当创建RouteData对象,我们需要在handler传递值,我们使用标准MvcRouteHandler,此类指定了controller和 action值: result = new RouteData...所以,比如,我们下面view代码: @Html.ActionLink("Click me", "GetLegacyURL", new { legacyURL = "~/articles/Windows...如果我们得到一个匹配,创建一个新 VirtualPathData实例,在引用传递给当前对象和对外URL。我们使用了UrlHelperContent方法,转换相对URL,使之能被浏览器处理。

    57420
    领券