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

在HtmlHelper扩展方法中访问HtmlHelper方法 - ASP.NET MVC RC2

在 ASP.NET MVC RC2 中,如果您想要在 HtmlHelper 扩展方法中访问 HtmlHelper 方法,可以将 HtmlHelper 作为扩展方法的参数。以下是一个示例:

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

public static class HtmlExtensions
{
    public static MvcHtmlString MyCustomHelper(this HtmlHelper htmlHelper)
    {
        // 在这里使用 htmlHelper 实例来访问其他 HtmlHelper 方法
        MvcHtmlString textBox = htmlHelper.TextBox("myInput");

        // 返回您的自定义 HTML 内容
        return MvcHtmlString.Create("<div>" + textBox.ToString() + "</div>");
    }
}

在上面的示例中,我们创建了一个名为 MyCustomHelper 的扩展方法,它接受一个 HtmlHelper 类型的参数。在方法内部,我们可以使用 htmlHelper 实例来访问其他 HtmlHelper 方法,例如 TextBox。然后,我们将返回一个包含自定义 HTML 内容的 MvcHtmlString 实例。

要在视图中使用此扩展方法,只需导入相应的命名空间,然后在视图中调用该方法即可:

代码语言:csharp
复制
@using MyApp.HtmlExtensions

<!DOCTYPE html>
<html>
<head>
   <title>My View</title>
</head>
<body>
    @Html.MyCustomHelper()
</body>
</html>

在上面的示例中,我们首先导入了 MyApp.HtmlExtensions 命名空间,以便在视图中使用我们的自定义扩展方法。然后,我们在视图中调用 MyCustomHelper 方法,并将其结果插入到 HTML 页面中。

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

相关·内容

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

ASP.Net MVC微软并没有提供类似服务器端控件那种开发方式,毕竟微软的MVC就是传统的请求处理响应的回归。所以抛弃之前的那种事件响应的模型,抛弃服务器端控件也理所当然。   ...Hello,I am HtmlHelper!") %>   那么,为什么可以页面调用Html.XXX方法呢?...这里就涉及到一个叫做“扩展方法”的东东了,HtmlHelper 类的扩展方法 System.Web.Mvc.Html 命名空间中。 ...但是第二版,我们的路由规则也会变成了{controller}-{action}-{id},那么我们刚刚为超链接所设置的href便都无法正常访问了。...例如我们要输出刚刚那句话,我们可以如下使用: 哈哈") %>   其生成的代码为: 哈哈   HtmlHelper还提供了许多的扩展方法供我们方便创建

68120

Asp.Net MVC对类HtmlHelper的自定义扩展方法以及如何调用

c# 扩展方法出来已久,介绍扩展方法的文章也很多,此处就不多介绍,如有不懂当然可以百度,google一下,园子当中也有超级多的讲解。 ?...大家可以看到这是微软MVC自带的针对TextBoxFor的三个重载方法。那么我们还可以针对TextBoxFor进行我们自定义的扩展(想要什么样式,只要我们能实现),那么调用时就方便多了。...它不会与系统自带的冲突,因为他们虽然方法名一样,但是参数类型不太一样,这个自己扩展的时候注意一下就可以了。 我们调用一下试试 ?...当然我们调用之前应该要引用的,这里提供三种方法进行引用: 第一种:相对应的视图View中进行页面引用即可 @using 命名空间 第二种:可以web.config中进行配置,那么就不需要在视图中进行引用...System.Web.Mvc.Html,然后将我们自定义扩展方法的命名空间也更改成这个那么就即不用配置也不用引用了。

1.5K10

HtmlHelper添加一个RadioButtonList扩展方法

在前面一篇文章,我们通过对HtmlHelper扩展简化了对DropDownList(Single-Line-Select)和ListBox(Multiple-Line-Select)的绑定,以及对作为数据源的列表进行单独维护...现在我们为HtmlHelper/HtmlHelper添加一个RadioButtonList/RadioButtonListFor扩展方法实现一组RadioButton的绑定。...[源代码从这里下载] 一、RadioButtonListFor的使用 我们先来显示一下扩展的RadioButtonListFor的方法的用法。...submit" value="Save" /> 27: 28: 29: } 下面这张图表示上面这个View浏览器呈现出来的样式...二、维护选项列表的组件CodeManager 由于一个应用,作为绑定到“列表控件”上的选项列表可能会有很多,将它们进行单独地维护是一个理想的选择。

922110

ASP.NET MVC HtmlHelper

ASP.NET MVCHtmlHelper ASP.NET MVC项目的开发,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/HTML代码的混写。...然而在实际的编写这样仍旧不太方便,于是这里便可以用到VS为我们默认集成好的HtmlHelper。...扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。我们可以回到第一部分对HtmlHelper扩展类-InputExtension类上,它是对于HtmlHelper扩展。...(); this关键字  可以从方法名定义中看出,第一个参数都是this HtmlHelper htmlHelper,代表对HtmlHelper类的扩展; 自定义扩展方法   1.Models文件夹下新建一个类...,于是我们将命名空间与HtmlHelper类所在的命名空间保持一致。   4.页面我们就可以使用我们自己写的扩展方法了 @Html.MyExtHtmlLabel("EdisonChou")

1.8K30

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对象。...routeValues, IDictionary htmlAttributes); 14: } ASP.NET MVC路由扩展:路由映射 ASP.NET MVC路由扩展

1.7K70

ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC

某些情况下通过这两者的结合往往可以解决很多特殊数据的呈现问题,我们接下来演示的实例就是典型的例子。[本文已经同步到《How ASP.NET MVC Works?》...对于ASP.NET MVC来说,我们可以通过HtmlHelper/HtmlHelper扩展方法DropDownList/DropDownListFor和ListBox/ListBox界面上呈现一个下拉框和列表框...通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用,我们定义一个作为Model表示员工的Employee类型。.../HtmlHelper扩展生成“ListControl”的HTML 基于四种“列表控件”的HTML生成是通过定义HtmlHelper扩展方法来实现的,如下面的代码所示,定义ListControlExtensions...的四个扩展方法实现了针对这四种列表控件的UI呈现。

4.8K60

通过对HtmlHelper扩展简化“列表控件”的绑定

ASP.NET MVC通过对HtmlHelperHtmlHelper扩展实现了对不同类型的元素的绑定,它们以扩展方法的形式定义SelectExtensions。...当我们操作这些扩展方法的时候,必须手工地提供以 IEnumerable对象表示的列表项。...的扩展方法实现基于“列表类别”的绑定 现在我们来定义针对HtmlHelper扩展方法通过从CodeManager获取的Code列表来进行“列表控件”的绑定。...我们为HtmlHelper编写了如下4个扩展方法用于针对DropDownList和ListBox的绑定,参数我们无须提供SelectListItem列表,而只需要提供Code和类别即可。...现在我们创建一个简单的ASP.NET MVC应用来演示对DropDownList和ListBox的绑定。

1.3K60

流畅地HtmlHelper-Asp.Net MVC

今天抛开 Fluent NHibernate 不谈,我们来谈谈 Asp.Net MVCMVC的View,我们经常会使用HtmlHelper来生成各种html代码(可能描述不太清楚看代码吧,呵呵)...HtmlHelper原先的功能不是很多,还好有很多扩展方法,我们能用它来生成一个Input控件,比如: 我们使用上面的代码能生成一个没有值的单行文本框...没有这种扩展方法,那我们只能自己来写一个扩展。...因为也是刚尝试接触MVC,看了一下它的源代码,HtmlHelper扩展方法都在 System.Web.Mvc.Html 命名空间内,大概看了下InputExtensions的代码,大致是根据传入的类型...不过HtmlHelper还有很多扩展方法,所以还需要写很多代码,俺会一点一点去添加的。 说实在,MVC好像很多地方要使用那种硬编码,实在不爽,所以要改造一个自己适合的环境还真不容易啊。

55480

认识ASP.NET MVC的5种AuthorizationFilter

通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用我们 定义了如下一个HomeController,包含在该Controller的两个Action方法(Action1...ASP.NET MVC Model元数据及其定制:一个重要的接口IMetadataAware》我们谈到可以通过AllowHtmlAttribute特性来定义表示Model元数据的ModelMetadata...对于ASP.NET MVC来说,如果我们执行某个Action方法之前能够确认当前的请求来源的有效性,就能从根本上解决CSRF攻击,而ValidateAntiForgeryTokenAttribute结合...具有三个AntiForgeryToken方法(这里的方式是HtmlHelper的实例方法,不是扩展方法)。...其实很简单,当我们调用HtmlHelper扩展方法Action或者RenderAction的时候会将当前的View上下文作为“父View上下文”保存到表示当前路由信息的RouteData的DataTokens

1.4K60

这算是ASP.NET MVC的一个大BUG吗?

这是昨天一个同事遇到的问题,我觉得这是一个蛮大的问题,而且不像是ASP.NET MVC的设计者有意为之,换言之,这可能是ASP.NET MVC的一个Bug(不过也有可能是保持原始请求数据而作的妥协)。...foo=123&bar=456&baz=789),我们可以看到界面上呈现出来的总是原始值,也就是说我们Action方法Index对原始数据的修改没有起到任何效果。 ?...通过查看ASP.NET MVC框架自身的代码,我想这个问题的根源应该源于InputExtensions类型的InputHelper方法。...如下所示,当InputHelper指定表单元素值得时候,会先从当前ModelState获取,如果该值ModelState不存在,才会从当前ViewData获取。...不过我还是觉得这样的设计有违MVC的基本原则,MVC处理请求的流程很清楚:客户端(浏览器)向定义Controller的某个Action方法发送请求,Action方法处理这个请求,并呈现出相应的View

80880
领券