Json.Encode()
ヘルパーはJavaScriptSerializer
クラスを使用して文字列をjsonにエンコードしますか?
Json.Encode(Model)
シリアル化されているクラスプロパティに属性があるのに、使用すると循環参照例外が発生し[ScriptIgnore]
ます。
私の唯一の推測は、Json.Encode()
ヘルパーがJavaScriptSerializerを使用してjsonにシリアル化していない可能性があることですが、msdnのどこにもドキュメントが見つかりません。
@Html.Raw(Json.Encode(Model))
これは、シリアル化してはならないプロパティを持つモデルの1つの例です...
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web.Script.Serialization;
namespace RobotDog.Entities {
public class Character {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[MaxLength(200)]
public string Name { get; set; }
public virtual Person Person { get; set; }
[ScriptIgnore]
public virtual Movie Movie { get; set; }
}
}