Функция Javascript не вызывается из бритвы - PullRequest
0 голосов
/ 09 марта 2019

Я знаю, что делал это раньше, но не могу понять, как. Учитывая следующее, я хочу вывести дату. Проблема, которую я получаю, заключается в том, что getDate ('@ Model.Date') написано.

<script type="text/javascript">
    function getDate(date) {
        var offset = new Date().getTimezoneOffset();       
        var dt = new Date(date);
        dt.setHours(dt.getHours() + (offset / -60));        
        return dt;
    }
</script>

<div class="time">
    <font class="time time-type">@Model.DateType:</font> <font class="time">getDate('@Model.Date');</font>
</div>

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Я использовал , и с Time HtmlElement

(если вам действительно нужно сделать это с необработанным javascript, его легко конвертировать, это было сделано в машинописном тексте, поэтому вы можете заменить let на var и для чистого javascript)

/ Views / Shared / DisplayTemplates / datetime.cshtml:

@model DateTime

<time datetime="@Model.ToString("o")"></time>

некоторые Javascript в файле шаблона / скрипта корневой страницы:

let $timeCache = $('time[datetime]');
// enable to update the display of the date/time if you're using
// momentjs friendly date times
// setInterval(() => updateTime(), 60000);

function updateTime() {
   $timeCache.each((index, element) => {
      let $element = $(element);
      let momentTime = moment($element.attr('datetime'));
      $element.text(momentTime.fromNow());
   });
}
updateTime();

Использование:

модель

public class MyModel
{
  public DateTime StartedOn { get; set; }
}

вид

@model MyModel

@Html.DisplayFor(m => m.StartedOn)
0 голосов
/ 09 марта 2019

Вы не можете вызывать функцию javascript следующим образом. Вам нужно добавить элемент управления меткой и назначить текст метки из вашего раздела javascript.

<div class="time">
    <font class="time time-type">@Model.DateType:</font><label id="dateDisplay" class="time"></label>
</div>

И ваша функция Javascript присваивает ему текст

<script type="text/javascript">

    function getDate(date) {
        var offset = new Date().getTimezoneOffset();       
        var dt = new Date(date);
        dt.setHours(dt.getHours() + (offset / -60));        
        return dt;
    }

$("#dateDisplay").text(getDate('@Model.Date'));
</script>
...