Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing Razor Variable into JavaScript Function

I am working on an Auction site in Asp.net MVC and I am trying to be able to display how a timer of how much time is left on each item's auction. I pass a list of items to my cshtml page with my Model and then iterate through them like so:

My javascript function to start timer:

function countdown(time) {
    // Get todays date and time
    var now = new Date().getTime();

    // Find the distance between now an the count down date
    var distance = time - now;

    // Time calculations for days, hours, minutes and seconds
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

    // Display the result in the element with id="timeLeft"
    document.getElementById("timeLeft").innerHTML = days + "d " + hours + "h "
        + minutes + "m " + seconds + "s ";

}, 1000);

Then my iterator of my Model, calling js function with the item's end date

@foreach (var item in Model)
    {
        //code here
        countdown(@item.EndDate)
        <text id="timeLeft"></text>
    }

I have my script referenced by <script src="~/Scripts/countdown.js" />

The problem I am having is how to call this js function with a c# razor variable. Doing something basic for one item like:

<body onload= "countdown('@item.EndDate')">

When I put my razor variable it greys out my function. How do I need to go about passing my variable into my js function?
EX: (with singular Model item)
enter image description here enter image description here

like image 651
C.Math Avatar asked Sep 28 '26 10:09

C.Math


1 Answers

Try with this syntax:

@foreach (var item in Model)
{
    //code here
    countdown(`${@item.EndDate}`)
}
like image 173
dotnetdev4president Avatar answered Sep 29 '26 23:09

dotnetdev4president



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!