Html.TextBoxFor 格式和 css 类

发布于 2024-10-13 17:05:02 字数 315 浏览 3 评论 0原文

下面的两行代码工作正常,但我想将它们组合起来。 我的意思是:我想在第一行代码中使用@class。 我怎样才能做到这一点?

<%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%>

<%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>

谢谢,

菲利普

The two lines of code below work fine, but I want to combine them.
What I mean is: I want to use the @class in the first code line.
How can I do that?

<%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%>

<%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>

thanks,

Filip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ぇ气 2024-10-20 17:05:02

我知道我来晚了,但我刚刚找到了这个问题的解决方案:

<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>

I know I'm way late here but I just found a solution to this issue:

<%: Html.TextBoxFor(model => model.StartDate, new { @class = "datepicker", Value=String.Format("{0:d}", Model.StartDate) })%>
╰沐子 2024-10-20 17:05:02

恐怕没有干净的方法来实现这一目标。有几种可能性:

  1. 对 Product 属性使用编辑器模板:

    <%: Html.EditorFor(x => x.Product) %>
    

    在此编辑器模板内:

    <%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %>;
    <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>;        
    
  2. 编写将附加类的自定义帮助程序

  3. 将这些文本框包装在 span 中:

    
        <%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%>;
        <%: Html.TextBoxFor(model => model.Product.Name)%>
    
    

    然后修改您的 CSS 规则:

    .container150 输入 {
        // 一些适用于文本框的规则
    }
    

I am afraid there is no clean way to achieve this. There are a couple of possibilities:

  1. Use an editor template for the Product property:

    <%: Html.EditorFor(x => x.Product) %>
    

    and inside this editor template:

    <%: Html.TextBox("Price", string.Format("{0:f}", Model.Product.Price), new { @class = "textBox150" }) %>
    <%: Html.TextBoxFor(model => model.Product.Name, new { @class = "textBox150" })%>        
    
  2. Write a custom helper that will append the class

  3. Wrap those textboxes in a span:

    <span class="container150">
        <%: Html.TextBoxFor(model => model.Product.Price, String.Format("{0:f}", Model.Product.Price))%>
        <%: Html.TextBoxFor(model => model.Product.Name)%>
    </span>
    

    and then modify your CSS rule:

    .container150 input {
        // some rule that applies to the textbox
    }
    
鹤仙姿 2024-10-20 17:05:02

再说一遍,可能已经晚了,但我相信更好的解决方案是使用 jquery.maskedinput 插件(也可以作为 nuget 包提供)。

为什么使用插件比仅使用输入格式更好?好吧,当有人修改输入时,如果您不使用插件,您将失去格式。

在这里您可以找到其用法和工作原理的演示。

Again, it may be late, but I believe that much better solution is to use jquery.maskedinput plugin (also available as a nuget package).

Why is it better to use a plugin than just an input format? Well, when someone modifies an input, you will loose formating, if you don't use a plugin.

Here you can find a usage and a demo of how it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文