首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net MVC3中创建和使用DropDown自定义扩展

在asp.net MVC3中创建和使用DropDown自定义扩展
EN

Stack Overflow用户
提问于 2013-05-23 16:40:04
回答 3查看 437关注 0票数 1

我认为这将是一个标准的任务,但我得到了很多困难,所以我寻求帮助。

我有一个在我的视图中频繁使用的下拉列表,现在我有很多具有相同逻辑的@Html.DropDown(),我认为这是一个用自定义html扩展替换它的好地方。

我不会描述我的项目结构,我只会发布它的截图:

因此,在HtmlExtensions.cs中,我创建了一个方法,我认为我需要从网络上的某个地方查看示例。该方法如下所示:

代码语言:javascript
复制
public static MvcHtmlString YesNoNotApplicableDDown(this HtmlHelper html)
        {
            return MvcHtmlString.Create("<select class=\"YesNoNotApplicable\"> <option value=\"1\">Yes</option> <option value=\"2\">No</option><option value=\"3\">NotApplicable</option></select>");
        }

然后,我将名称空间添加到Views下的web.config中:

代码语言:javascript
复制
<pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="MCSResources" />
        <add namespace="MaintenanceCheckSystem.Utils.HtmlExtensions" />
      </namespaces>
    </pages>

事实上,我在一开始就尝试了使用和不使用项目的名称,所以我也测试了一下:

代码语言:javascript
复制
<add namespace="Utils.HtmlExtensions" />

然后在我的一个视图中,我尝试了@Html.Ye..,但没有得到任何提示,当我检查我的自定义方法不在那里时。我不知道我是否遗漏了什么,或者我做错了什么(可能两者都有),那么我如何才能让它工作呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-23 17:23:25

初始答案

你的扩展类是一个公共的静态方法吗?您的示例代码没有显示类定义。

这是requirements for extension methods中的一个。

更新

您可以这样说,您添加了如下名称空间:

代码语言:javascript
复制
<add namespace="Utils.HtmlExtensions" />

但这真的是命名空间吗?命名空间不是这样的吗:

代码语言:javascript
复制
<add namespace="MaintenanceCheckSystem.Utils" />

类名称不应包含在using语句中。

如果您在web.config中注册名称空间,同样没有类名,情况也类似。

票数 1
EN

Stack Overflow用户

发布于 2013-05-23 17:10:49

您可以尝试在web.config中注册此命名空间

代码语言:javascript
复制
<add namespace="MaintenanceCheckSystem.Utils" />

并调用视图中的助手,如下所示:

代码语言:javascript
复制
@HtmlExtensions.YesNoNotApplicableDDown()
票数 1
EN

Stack Overflow用户

发布于 2013-05-23 17:05:17

代码语言:javascript
复制
@using MaintenanceCheckSystem.Utils.HtmlExtensions

在.cshtml文件中

更新@using MaintenanceCheckSystem.Utils

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16709286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档