Mik*_*SFT 13 asp.net-mvc razor
我使用Razor作为ASP.NET MVC 5中的视图引擎.我的日期是从UTC的后端服务返回的.我想moment.js在客户端上使用JavaScript(例如)格式化那些.我不想在服务器上这样做,因为我不想担心客户端在服务器端的时区(毕竟服务器并不在乎).
我认为从MVC,AJAX和Moment.js的Locale Date格式化,如果必须的话,有一些方法可以做这个服务器端,虽然我没有足够的信息让它得到解决,这不是我想做的事情无论如何.
像ASP.NET MVC ViewModel映射与自定义格式或在哪里是格式化ASP.NET MVC(3)中的模型属性的最佳位置?或者如何格式化asp.net中的日期mvc 5不起作用,因为那是服务器端(或者以某种方式我不理解?)
干净可靠地完成这项工作的"最佳"/"正确"方法是什么?
编辑:要清楚,我知道关于这moment.js方面的一切.如果我没有,我就不会给它命名.我要问的是ASP.NET MVC视图集成 - 我如何以"正确"的方式完成它?
编辑2:我知道如何编写脚本.我不知道的是,如果我有一个输出,从脚本变量,我如何获取该变量的内容到视图中显示给用户的信息?如果我可以提供帮助,我不想做像编辑HTML元素内容等的事情.这根本不干净.也许我应该更简单地说明这一点:
想象一下Razor的观点.该观点说:
@foreach (var item in Model) {
<!-- something to do javascript manipulation of item -->
<p>The result of manipulating @item.startDate is <!-- WHAT DO I DO HERE? --></p>
}
Run Code Online (Sandbox Code Playgroud)
评论是我现在不知道如何干净利落的.
Guy*_*Guy 19
你可以尝试这个(带剃刀的JS):
var date = moment('@YourDateTime.ToString( "s", System.Globalization.CultureInfo.InvariantCulture )');
Run Code Online (Sandbox Code Playgroud)
来自momentjsdoc:
从字符串创建时刻时,我们首先检查字符串是否与已知的ISO 8601格式匹配
(来源)
来自.NETdoc:
"s"标准格式说明符反映了定义的标准(ISO 8601)
(来源)
结合momentjs使用的解决方案来Razor显示数组DateTime
HTML/Razor:
@foreach (var item in Model) {
<p data-utcdate="@item.startDate.ToString("s", System.Globalization.CultureInfo.InvariantCulture)"></p>
}
Run Code Online (Sandbox Code Playgroud)
JS(使用JQuery):
<script type="text/javascript">
$(function () {
$('[data-utcdate]').each(function () {
var d = moment($(this).attr('data-utcdate'));
$(this).html(d.format());
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
如果您想以不同的格式显示日期:http://momentjs.com/docs/#/displaying/format/
| 归档时间: |
|
| 查看次数: |
12460 次 |
| 最近记录: |