System.Web.Helpers.Json.Encode()
如果模型包含DateTime
属性,我会遇到由 ASP.NET MVC 生成的 JavaScript 的问题。
我的模型:
public class MyViewModel
{
public string MyString { get; set; }
public DateTime MyDateTime { get; set; }
public int MyInt { get; set; }
public string[] MyStringArray { get; set; }
}
我的控制器:
public ActionResult Index()
{
var myViewModel = new MyViewModel();
myViewModel.MyString = "My test string";
myViewModel.MyInt = 100;
myViewModel.MyDateTime = DateTime.Now;
myViewModel.MyStringArray = new string[] { "string 1", "string 2" };
return View(myViewModel);
}
我的观点:
<script type="text/javascript">
var myViewModel = @Html.Raw(Json.Encode(Model)) ;
</script>
输出:
<script type="text/javascript">
var myViewModel = {"MyString":"My test string","MyDateTime":"\/Date(1372280916431)\/","MyInt":100,"MyStringArray":["string 1","string 2"]} ;
</script>
问题在于日期的编码方式。它是字符串而不是日期类型。
我也尝试过使用Newtonsoft.Json.JsonConvert.SerializeObject()
,但我仍然得到一个字符串而不是 Date 类型。