- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
是否可以将 css 类注入(inject)到封装在 MvcHtmlString
中的 HTML 元素中? ?
作为我正在构建的框架的一部分,我的任务是为表单元素(TextBox
、TextBoxFor<>
等)创建我自己的 MVC 扩展方法版本,并注意以下事项:
大多数(如果不是全部的话)MVC 扩展方法返回 MvcHtmlString
。所以模仿功能的最简单方法是直接从我的方法中调用这些方法。我有自己的 Html Helper,OuHelper
,我的框架正在使用,所以开发人员希望创建,例如,一个 TextBox
,会按照以下方式调用:
`@Ou.TextBoxFor(m => m.Username)
我希望生成的 Html 像这样呈现:
<input type="text" name="Username" id="Username" class="int-text" />
如果我创建自己的重载版本,就像它们在 MVC 框架中一样,我将能够控制在需要的地方添加额外的 CSS 类,但是对于这些方法的 HTML 输出的如此小的更改,这似乎有点过分了。我需要提供所有重载的等效实现(仅对于 TextBox
,当您计算通用和非通用版本时,大约有 12 个)。我想做的是 TagBuilder
相反(从输出开始并从中创建一个对象,使 MergeAttributes
之类的东西可用)但我认为这是不可能的。
需要明确的是:我正在编写的框架代码本身需要添加 css 类,但是使用我创建的扩展方法的开发人员也应该可以添加他们自己的自定义 css 类。这些将根据标准 MVC 框架表单扩展方法的功能添加/附加
最佳答案
您目前的系统似乎还不错。您不能注入(inject)/覆盖 HtmlHelper 类的默认样式,您可以查看 HtmlHelper
's input extensions here 的源代码如果你愿意的话。
我能想到的唯一其他方法是使用扩展方法,就像它在实际 ASP.NET 源代码中的做法一样。这是一个示例,函数的名称可以是您想要的任何名称,但它需要与 TextBoxFor
不同,因为它具有相同的参数列表。
public static class HtmlHelperExtensions
{
public static MvcHtmlString IntTextFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
{
return htmlHelper.TextBoxFor(expression, new { @class = "int-text" });
}
}
用法就像常规 MVC 一样,只包含扩展方法的命名空间。
@using MyProject.Helpers;
@Html.IntTextFor(e => e.Age)
关于c# - 如何将 css 类注入(inject) MvcHtmlString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15831779/
我正在尝试使用 MvcHtmlString.Create 创建 JavaScript 变量。但是输出仍在编码中。 var geocode_jsonresult = @MvcHtmlString.Cre
我已经创建了自己的 Html Helper,它将红色星号添加到任何必填字段。 它成功地与两者一起工作 @Html.myLabelFor(model => model.Description) //an
我写了一个 HtmlHelper 扩展方法,它读取 CSS 文件的内容并将其包装到一个 中。标签: public static IHtmlString EmbedCss(this HtmlHelpe
documentation对于 MvcHtmlString 并不是很有启发性: Represents an HTML-encoded string that should not be encoded
我有一个看起来像这样的字符串:Foo's Bazz 我正在使用自定义 HtmlHelper 在 div 元素内呈现此文本: public static MvcHtmlString DisplayWit
我在我的项目中派生了 mvc4 MultiSelectList 类来实现 ToMvcHtmlString 方法。如何从我的 MultiSelectList 实例中获取纯 html? public Mv
我正在编写一个生成 JavaScript 代码并发送 Razor View 的方法。但是 razor view 根据其 head 对其进行编码。代码如下。 这是我的方法体,返回一个 mvchtmlst
我正在查看 MvcHtmlString 及其基类 HtmlString 的源代码,它们似乎都是字符串的无用包装器。 我记得有一次我做过这个练习并看到了好处,但现在想不起来了。当时我花了很多时间研究 M
我将 MvcHtmlString 作为我 View 的模型。我需要将此字符串呈现为 HTML。目前我尝试这样做: @Model.ToHtmlString() 但它在我的页面上给了我纯文字。我知道这应该
我从MVC 1到MVC 2 converted my project,Visual Studio 2008给我以下错误: Error 1 'System.Web.Mvc.MvcHtmlStri
HtmlString 与 MvcHtmlString 这两者之间有什么区别,或者什么时候更喜欢其中一个? 编辑: 与 HtmlString 相比,MvcHtmlString 更受青睐的是 MvcHtm
与此相关question我在 ASP.NET MVC 项目中遇到了 XSS 问题,并且对 MvcHtmlSTRing.ToHtmlString() 方法感到困惑。来自 documentation “返
我想更改 DisplayFor 输出(格式化字符串),但输出字符串有一个 & 符号。如何处理 MvcHtmlString 以不转义 & 符号? 这是 cshtml 文件中的代码: @{ str
我正在尝试使用出色的 PagedList.Mvc Visual Studio 2015 RC 中的分页库,但从我的角度来看我得到了这个异常: The type 'MvcHtmlString' is d
我有一个包含 MvcHtmlString 类型变量的页面类。 using System; using System.Collections.Generic; using System.Linq; us
我一定是漏掉了什么,因为this doc 说,MvcHtmlString.Create("someStringHere")返回 html 编码的字符串,但如果我有类似 MvcHtmlString.Cr
是否可以将 css 类注入(inject)到封装在 MvcHtmlString 中的 HTML 元素中? ? 作为我正在构建的框架的一部分,我的任务是为表单元素(TextBox、TextBoxFor<
由于在 MSDN 中找到了此信息,我对如何连接 MvcHtmlString 实例有一些疑问。 : MvcHtmlString Class Represents an HTML-encoded stri
我刚开始使用 RazorEngine,但在使用静态辅助方法时遇到了麻烦。它只是为模板生成一个 MvcHtmlString/IHtmlString。当调用 Razor.Parse(...) 我得到 Ra
我正在将 ASP.NET MVC 应用程序转换为 ASP.NET MVC 2 4.0,并收到此错误: Operator '+' cannot be applied to operands of typ
我是一名优秀的程序员,十分优秀!