【问题标题】:Using jQuery Functions in MVC3 with model在 MVC3 中使用带有模型的 jQuery 函数
【发布时间】:2012-05-14 21:10:25
【问题描述】:

我正在 MVC3 ASP.NET 应用程序中试用 jQuery,但我在模型方面遇到了困难。

这不起作用:

我已经声明了一个 TextBox Watermark 库:

<script src="../../Scripts/jquery.tinywatermark-3.1.0.js" type="text/javascript"></script>

然后我添加我的 jQuery:

<script type="text/javascript">
    $(function () {
        $('.watermarked').watermark('watermark', 'Please Enter...');
    });
</script>

然后将水印类添加到我的 div 模型字段中:

<div class="editor-field">
     @Html.EditorFor(model => model.SchemeName, new { @class = "watermarked" }) 
    @*<input class="watermarked"  @Html.EditorFor(model => model.SchemeName) />*@
    @Html.ValidationMessageFor(model => model.SchemeName)

如果我取消注释它有点工作但我想维护 Razor 模型,有什么想法吗?

【问题讨论】:

    标签: jquery asp.net-mvc-3 razor model


    【解决方案1】:

    下面一行:

    @Html.EditorFor(model => model.SchemeName, new { @class = "watermarked" })
    

    没有做你认为它做的事。您传递给 EditorFor 助手的第二个参数并没有按照您的想法执行。它将附加视图数据发送到自定义编辑器模板。它不会应用您可能想的任何 html 属性。如果您希望此语法正常工作,您可以编写自定义元数据提供程序和自定义编辑器模板,如 following article 中所示。

    【讨论】:

    • 谢谢达林,我可以通过其他方式添加课程吗?不知道如何让它工作!
    • 当然,您可以编写自定义元数据提供程序和自定义编辑器模板。我已经更新了我的答案,并提供了一篇文章的链接,该文章说明了这个概念的实际应用。
    • 嗯,这也不起作用 :( @Html.EditorFor(model => model.SchemeName, htmlAttributes: new { @class= "watermarked" })
    • 正如我在回答中所说,EditorFor 助手的第二个参数不是 htmlAttributes。不要尝试将 html 属性传递给它,因为这永远不会起作用。您需要做更多工作才能使其工作 => 自定义元数据提供程序和自定义编辑器模板。你读过我链接的文章吗?
    • 对不起,达林,我没有注意到你已经添加到你的评论中,我去看看,干杯!
    【解决方案2】:

    我不确定EditorFor() 的偏好是您需要它,但这应该可以正常工作

    @Html.TextBoxFor(model => model.SchemeName, new { @class = "watermarked" })
    

    【讨论】:

    • 感谢 CD,这行得通,我只是在创建视图时接受了默认模板
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多