c#代码,JQuery, ASP.. NET剃刀视图

本文关键字:剃刀 视图 NET JQuery 代码 ASP | 更新日期: 2023-09-27 18:10:44

我有一个带有日期时间类型字段PublishDate的服务器端模型。我发送List<Posts>作为json响应ajax调用。

我想用c#代码Convert.ToDateTime(this.PublishDate).ToString("MMM dd, yyyy")在jquery代码。下面是我的代码,我尝试到目前为止-

var posts = response.Posts;
$.each(posts, function () {
  $('#container').append('<div class="row"> 
                            <div class="col-lg-12">
                              <h2>' + this.PostTitle + '</h2>
                              <span>Published on: @Convert.ToDateTime(this.PublishDate).ToString("MMM dd, yyyy")</span></div></div>');
});

但是它不起作用。任何想法?

c#代码,JQuery, ASP.. NET剃刀视图

使用Razor的全部意义在于您可以在html代码中使用c#的强大功能,或者更准确地说是cshtml。

假设您的div id是container,您可以这样做。

在你的模型类中有一个名为PublishDate的成员

添加到HTML

<input id="container" name="@Html.DisplayNameFor(model => model.PublishDate)" value="@DateTime.PublishDate.ToString("MMM dd, yyyy")">

并从jQuery中删除转换。

这对我来说是可行的。
试试这个格式:

Convert.ToDateTime(PublishDate, System.Globalization.CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat);

你不能以这种方式使用c#和jquery代码,原因很简单,c#代码是在服务器端执行的,在数据发送到页面之前。

表示@Convert.ToDateTime(this.PublishDate)的代码在呈现razor页面的类中查找名为PublishDate的属性,并尝试将其转换为DateTime对象。

一种方法来做你正在寻找的,是添加一个属性到你的模型,它已经有正确格式的日期,所以你不必费心用Javascript解析它。

另一种方法是用javascript解析它。由于日期/时间对象是复杂而棘手的东西,并且可能会因跨浏览器的怪异而困扰您的一天,因此推荐使用库来使您的生活更轻松。Moment.js

看起来像这样:

'<span> Published on: ' + moment(this.PublishDate).format('MMM dd , yyyy') +  ' </span></div></div>'