0

System.Web.Script.Serialization ライブラリを使用して、C# の要素をエンコードします。JS関数からデコードするにはどうすればよいですか。

たとえば、私は持っています:

JavaScriptSerializer js = new JavaScriptSerializer();
string ModelString=  js.Serialize(Model);

そしてJSでやりたい:

var element=decode('@ModelString');
4

3 に答える 3

2

jQueryを使用する必要があります。

var _Model=$parseJSON(ModelString);

その後、次を使用できます。

_Model.Name;
_Model.Address; //etc...

これがあなたが望むものであることを願っています...

于 2012-07-14T03:33:30.710 に答える
0

モデルをシリアル化して返すためのメソッドを作成できます。

using System.Web.Script.Serialization;
namespace SO11444045.Models
{
    public class HomeIndex
    {
        public HomeIndex()
        {
            this.Name = "Alfred";
            this.Age = 33;
        }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Me()
        {
            var serializer = new JavaScriptSerializer();
            return serializer.Serialize((object)this);
        }
    }
}

View で Modelo インスタンスを取得します。

@model SO11444045.Models.HomeIndex

@{
    ViewBag.Title = "Index";
}

<script type="text/javascript">
    var json = @Html.Raw(Model.Me());
    alert(json.Name);
</script>
于 2012-07-14T03:00:37.483 に答える
0

ビューで次のようなことができます。

var element = @Html.Raw(Json.Encode(Model))

「モデル」はオブジェクトです。この場合、シリアル化する必要はありません。Json.Encode() が処理します。

または、コントローラーでオブジェクトをシリアル化したい場合は、ビューで次のようにすることができます。

var element = @Html.Raw(ModelString)
于 2012-07-12T01:58:47.417 に答える