繁体   English   中英

ASP.NET MVC jQuery HTML5数据属性

[英]ASP.NET MVC jQuery HTML5 data attribute

我有三个.cshtml文件:_ProductSelection.cstml->这定义了html表

@model List<..Rate>
<table id="productgrid">
 <thead>
...
</thead>
<tbody>
     @Html.Partial("_ProductRows", Model)
</tbody>
</table>

_ProductRows.cshtml->这会将一些属性添加到每个tr和td

    @if (Model != null && Model.Count > 0)
    {
        foreach (var rate in Model)
        {
            <tr class="@(rate.IsSelected ? "selected" : "")" data-base="@rate.BaseCharge" data-planname="@rate.PlanName" >
...

MVC控制器发出的ProductSelection.cshtml-> actual view调用:

    ....
     @Html.Partial("_ProductSelection", Model.Rates)
    ...
    @section scripts {
       ..
        var table = $('#productgrid'),
          tbody = table.find('tbody'),
       ...

     $(function () {
....
     tbody.find('tr').each(function (index, elem) {
                    var self = $(elem),
                        base = parseFloat(self.attr('data-base')),
         .....

这是工作代码,我可以访问productSelection.cshtml中的所有data属性,这些属性在_ProductRows.cshtml文件的tr标签中设置。 例如数据库,数据计划名称

问题是:我在_ProductRows tr标记中添加了更多数据属性,但是在ProductSelection.cshtml中看不到新的数据属性,当我在google chrome中调试并检查elem的值时,它仅具有之前定义的数据属性,而在不在元素的“属性”列表中。 在下面的示例中,我看不到新添加的数据信用。

<tr class="@(rate.IsSelected ? "selected" : "")" data-base="@rate.BaseCharge" data-planname="@rate.PlanName" data-credit="@rate.Credit" >

我增加了将近20个数据属性,在chrome中调试时它们都不可见。 在费率模型中,我添加了所有这些新字段,并从数据库中的值填充了它。

谢谢大家的回应。

我找出了新属性未出现在“元素”中的原因。

在ProductSelection.cshtml上,还有一个函数将属性添加到tr标签,该函数将覆盖_ProductRows.cshtml中添加的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM