在mvc 4 foreach循环中调用javascript函数

时间:2014-04-16 06:17:00

标签: javascript jquery asp.net-mvc-4 razor

我想在MVC 4 razor语法foreach循环中调用jquery函数,必须在每个循环中调用函数

这是我的更新代码

@foreach (var item in Model) {
<table>
<td>
          <div id="date">  

          <input id="datei" type="hidden" value="@Html.DisplayFor(modelItem => item.hire_date)" />
          </div>
         <div id="datedis"></div>
        <script >
           GetDate()

        </script>

    </td>

这是Getdate功能

 var GetDate = function()
{
    var date2 = new Date("2014-11-01")
    var dt = $("#datei").val();
    var dtx = new Date(Date.parse(dt));
    var datediff = date2 - dtx;

    var years = datediff / 1000 / 60 / 60 / 24 / 365;
    var months = datediff / 1000 / 60 / 60 / 24 / 31;

    var yeardisplay;
    var monthdisplay;

    if (years > 0) {
        yeardisplay = Math.floor(years);
        monthdisplay = Math.floor(months);

        $("#datedis").html(yeardisplay + "Years," + " " + monthdisplay + " Months");
    } else {
        monthdisplay = Math.floor(months);

        $("#datedis").html(monthdisplay + " Months");
    }
}

2 个答案:

答案 0 :(得分:1)

这样做:

@foreach (var item in Model) 
{
    <table>
       <tr>
           <td>
           </td>
       </tr>
    </table>

    <script>                

    GetDate();

    </script>  

}

答案 1 :(得分:0)

而不是将脚本与html混合。我建议你写出html并在页面加载时让jQuery / javascript迭代它。如果您需要任何进一步的帮助,请告诉我。

DEMO

看一下html结构的演示。但这基本上就是我的意思。你必须为你GetDate()修改它,抱歉我没时间去做。

$(document).ready(function () {
    var obj = $('.container .date-container');

    $.each(obj, function (i, item) {
        //item here is each date-container (your case table)
        //so you can do what you like with it here
    });
});