[英]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.