System.Web.Helpers.Json.Encode()
モデルにプロパティが含まれている場合、ASP.NET MVC によって生成される JavaScript に問題がありDateTime
ます。
私のモデル:
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()
ましたが、まだ日付型ではなく文字列を取得しています。