剃须刀未调用Javascript函数

时间:2019-03-09 18:49:38

标签: asp.net-mvc razor

我知道我之前已经做过,但是不知道怎么做。给定以下内容,我想输出日期。我遇到的问题是写入了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 :(得分:0)

您不能像这样调用javascript函数。您需要添加标签控件并从javascript部分分配标签文本。

times

然后您的Javascript函数将文本分配给它

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

答案 1 :(得分:0)

我将Time HtmlElement一起使用

(如果确实需要使用原始javascript进行转换,则很容易转换,这是在typescript中完成的,因此您也可以将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)