Javascript 自动刷新多分区MVC

Javascript 自动刷新多分区MVC,javascript,jquery,ajax,asp.net-mvc,razor,Javascript,Jquery,Ajax,Asp.net Mvc,Razor,我想在MVC视图中更新表中的一列数据。 这是我要更新的视图 <table class="table"> <tr> <th> @Html.DisplayNameFor(model => model.CurrentTemperature) </th> <th></th> </tr> @{int i = 1;} @foreach (var item in Model)

我想在MVC视图中更新表中的一列数据。 这是我要更新的视图

<table class="table">
<tr>

    <th>
        @Html.DisplayNameFor(model => model.CurrentTemperature)
    </th>

    <th></th>
</tr>
@{int i = 1;}
@foreach (var item in Model)
{
    <tr>
        <td align="center" @*id="@("current"+i)" data-id="@item.ID"*@>
            <div id="@("current"+i)" data-id="@item.ID">
                @{Html.RenderAction("TemperatureUpdateDeviceList", new { idDevice = item.ID });}
            </div>       
        </td>

    </tr>
    i++;
}
</table>

使用此方法无法执行正确的请求,因为生成的URL不正确。如何获得正确的URL

请注意,TemperatureUpdateDeviceList函数定义为:

public PartialViewResult TemperatureUpdateDeviceList(int idDevice)
    {            
       return PartialView(temperatureModel);
    }

您可以使用
varid=$(this.attr('data-id')
不会传递
数据id
值,因为
$(此)
不是您的
元素。如果要更新所有元素,请将html更改为

<div class="container" data-id="@item.ID">
    @{Html.RenderAction("TemperatureUpdateDeviceList", new { idDevice = item.ID });}
</div>

url.Action()
生成的url是什么?您要查找的url是什么?您的基本url是正确的,但是您的
id
不会是(
$(此)
不是元素)。没有必要给divs一个id属性。您可以使用一个类名获取所有div,并使用
$。each()
循环,您可以在其中使用
$(this.data('id')
$(this.html)(partialView)
它不会返回参数:来自Stephens的idDevicePart正确观察-js片段是否放置在启用剃刀的视图中(即不在js文件中)?嗯,js与viewWorks位于同一个cshtml文件中,非常棒!非常感谢。
<div class="container" data-id="@item.ID">
    @{Html.RenderAction("TemperatureUpdateDeviceList", new { idDevice = item.ID });}
</div>
var url = '@Url.Action("TemperatureUpdateDeviceList")';

setInterval(function () {
    $('.container').each(function() {
        var id = $(this).data('id');
        var div = $(this);
        $.get(url, { idDevice: id}, function(partialView) {
            div.html(partialView);
        });
    });
},3000);