- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我翻译了 Jeremiah Clark 的 CheckBoxList Helper for MVC进入我的 VB.Net 项目,但是当我尝试在我的 View 中使用该方法时出现错误
'CheckBoxList' is not a member of 'System.Web.Mvc.HtmlHelper(Of Attenda.Stargate.Web.UserRolesViewModel)'.
Imports System.Runtime.CompilerServices
Public Module InputExtensions
<Extension()> _
Public Function CheckBoxList(ByVal htmlHelper As HtmlHelper, ByVal name As String, ByVal listInfo As List(Of ListItem)) As String
Return htmlHelper.CheckBoxList(name, listInfo, DirectCast(Nothing, IDictionary(Of String, Object)))
End Function
<Extension()> _
Public Function CheckBoxList(ByVal htmlHelper As HtmlHelper, ByVal name As String, ByVal listInfo As List(Of ListItem), ByVal htmlAttributes As Object) As String
Return htmlHelper.CheckBoxList(name, listInfo, DirectCast(New RouteValueDictionary(htmlAttributes), IDictionary(Of String, Object)))
End Function
<Extension()> _
Public Function CheckBoxList(ByVal htmlHelper As HtmlHelper, ByVal name As String, ByVal listInfo As List(Of ListItem), ByVal htmlAttributes As IDictionary(Of String, Object)) As String
If String.IsNullOrEmpty(name) Then
Throw New ArgumentException("The argument must have a value", "name")
End If
If listInfo Is Nothing Then
Throw New ArgumentNullException("listInfo")
End If
If listInfo.Count < 1 Then
Throw New ArgumentException("The list must contain at least one value", "listInfo")
End If
Dim sb As New StringBuilder()
For Each info As ListItem In listInfo
Dim builder As New TagBuilder("input")
If info.Selected Then
builder.MergeAttribute("checked", "checked")
End If
builder.MergeAttributes(Of String, Object)(htmlAttributes)
builder.MergeAttribute("type", "checkbox")
builder.MergeAttribute("value", info.Value)
builder.MergeAttribute("name", name)
builder.InnerHtml = info.Text
sb.Append(builder.ToString(TagRenderMode.Normal))
sb.Append("<br />")
Next
Return sb.ToString()
End Function
End Module
<%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/TwoColumn.Master" Inherits="System.Web.Mvc.ViewPage(Of Attenda.Stargate.Web.UserRolesViewModel)" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Edit User Roles
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Edit Roles for
<%=Html.Encode(Model.User.UserName)%></h2>
<div>
<%=Html.CheckBoxList("Roles", Model.Roles)%>
</div>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="cphLeftPanel" runat="server">
</asp:Content>
最佳答案
您需要将包含自定义帮助程序类的命名空间导入您的 View 页面。您可以在页面本身或在所有页面的 web.config 文件中执行此操作。首先将代码放入命名空间。
<%@ Import Namespace="MyProject.Extensions" %>
<pages>
...
<namespaces>
...
<add namespace="MyProject.Extensions" />
</namespaces>
</pages>
关于asp.net-mvc - 自定义 HtmlHelper 扩展方法在 View 中不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1105276/
我有意见 ViewUserControl 在哪里 SearchViewData: CommonViewData 在这个 View 中,我因此引用了 Html。 这是类型 HtmlHelper 我创建了
为什么需要使用 HtmlHelper 助手的参数声明 HtmlHelpers? IE public static string ScheduleEntries(this HtmlHelper help
我正在为 ASP.NET MVC 编写自己的 HtmlHelper 扩展: public static string CreateDialogLink (this HtmlHelper htmlHel
我已经为 HtmlHelper 编写了扩展方法,该方法是从需要访问 ViewBag 以获取页面设置的信息的母版页调用的。 这是方法签名: public static string BuildFavor
我正在尝试在 ASP.NET MVC RC2 中构建一个 HtmlHelper 扩展。这段代码在预览版 5 中运行良好,但在 RC2 中不再起作用,我试图理解为什么。这是代码: public stat
我在我的 mvc asp.net 项目中使用 DevExpress 控件。这是 View 的代码: @Html.DevExpress().TextBox(settings => {
我正在尝试使用 Razor 的一些功能创建一个网站,但不使用 Visual Studio。主要原因是我目前主要在 Mac 上工作,我想使用 Coda 来编辑页面。 我不需要一个可编程的网站,就数据库访
在helper中访问模型是正确还是错误?在 cakephp 应用程序中。 我们如何在自定义助手中访问 htmlhelper? 谢谢 最佳答案 Link to manual. . class LinkH
我有一个 html 帮助程序,可以以友好的方式显示文本框的电话号码。用法: Html.PhoneNumberFor(m => m.PhoneNumber) 我希望它接受像“1111111111”这样的
在键入“this”类型后,我已经习惯了由 intellisense 提供的扩展方法。但是当我尝试使用 HtmlHelper 时,扩展方法不显示 - 即使存在“using”语句。为什么是这样?澄清一下,
我正在使用 CakePHP 并试图了解使我的应用程序保持一致和逻辑的最佳方法。 现在我正在尝试使用模型数据验证并处理 View 中的验证错误,我不确定如果我想插入应该怎么做返回错误中的某些链接,例如忘
我有一个 HTMLHelper 扩展方法,可将 HTML 输出到 Response.Write。如何最好地对其进行单元测试? 我正在考虑模拟传递到该方法中的 HtmlHelper,但不确定应该如何验证
在 Razor 代码中使用 HtmlHelpers 时,像这样: new { data-something_something = "value" } 下划线“神奇地”转换为连字符。但是,如果我需要我
我想延长 HtmlHelper , 为了呈现具有自定义属性的脚本标签('async',例如) 我想这样使用它 @Html.RenderBundleScript("/mybundleName", new
我正在尝试创建一个 HTML 帮助程序扩展,它除了生成 HTML 标记外还生成一些 javascript: // script to populate select with data v
我想为我的 MVC Controller 嵌套一组扩展方法,我希望能够按以下模式调用 @Html.NestedName().CustomLabelFor(m => m.Field) 我注意到 Twit
我目前正在创建一些自定义帮助程序类,类似于 ASP.NET MVC 的标准 HtmlHelper。当我查看 HtmlHelper 的实现时,我注意到大多数/所有 HTML 生成方法(例如 Action
好的,假设我有以下模型: public class bar{ public string bar {get; set; } } public class foo{ public bar
我想根据下拉列表的值创建一个 htmlhelpers 元素。这是代码: 下拉菜单 Pracownik biurowy Przewodnik 脚本如下:
是否有人可以建议是否可以在新的自定义 Html 帮助器中重新使用现有的 HtmlHelper。例如: public static class GridHelper { public stati
我是一名优秀的程序员,十分优秀!