我创建了一个扩展方法,当它不包含在Java脚本标记中时可以使用。

public static class ExtensionMethods
{
    public static string TickWrap(this HtmlHelper source, MvcHtmlString mvcHtmlString)
    {
        return "'" + mvcHtmlString.ToHtmlString().Replace("'", "''") + "'";
    }
}

我认为用法如下

@Html.TickWrap(Html.DisplayNameFor(m => Model.SampleDateTime))

它要做的就是获取下面列出的数据注释的“显示名称”属性,并将其显示为“日期和时间”,并在其周围打勾。

[Display(Name = "Date and Time")]
public DateTime SampleDateTime {get; set;}

我似乎无法使它在脚本标签中工作。 我收到JavaScript严重错误语法错误。 以下是我视图中包含的脚本。

<script type="text/javascript">
    $(function () {
        var displayName = @Html.TickWrap(Html.DisplayNameFor(m => Model.SampleDateTime))
        alert(displayName);
    });
</script>

我猜测它与脚本部分中HtmlHelper的使用有关吗? 如果是这样,如何在脚本部分中使用?

那是我正在做的事情的简化版本,但是我真正想做的是填充jqGrid的colName,而不必在javascript中进行硬编码。 我想使用数据注释,因此只需要更改一个即可。 jqGrid的colName被定义为

colNames: ['ParameterId','Location', 'Parameter Name', 'Date and Time', 'Parameter Value']

===============>>#1 票数:3 已采纳

在@ Html.TickWrap(Html.DisplayNameFor(m => Model.SampleDateTime))前后加上''(引号)

===============>>#2 票数:0

如果要使用数据注释,则应创建从属性类扩展的类。 并且比使用PropertyInfo反射获取值。

如果要使用数据注释填充jqGrid的colName,我已经升级了jq.grid插件以支持数据注释,请检查此jq.grid以获取更多信息。

  ask by Dan P translate from so

未解决问题?本站智能推荐: