からListクラスの拡張プロパティにアクセスする私はリストから継承し、次のように、この基本クラスにいくつかのより多くのプロパティが追加されたクラスがあります。JavaScriptの
public class MyNewList: List<string>
{
public string MyNewProperty { get; set; }
}
を、私はクラスのこの種を返すMVCコントローラを持っています:
public JsonResult GetModel()
{
var model = new MyNewList() { "1", "2", "3" };
model.MyNewProperty = "I want to be shown!!!";
return Json(model);
}
私の問題は、私は、サーバーへのAJAX呼び出しを行うと、クラスのこの種を受け取る時はいつでも、私はMyNewPropertyへのアクセスを持っていないということです。それは、常にMyNewPropertyためundefinedを返しますが、JavaScriptはリストオブジェクトとして扱います:
$http(...
function success(result) {
console.log(result) // ["1", "2", "3"]
console.log(result.myNewProperty); // undefined
}
私は我々がListクラスから継承するべきではないことが示唆されていることを知っているが、これは、プロジェクトと私の既存のクラスとロジックですそれを変更することはできません。とにかくこのオブジェクトをJavaScriptに送る方法を見つけなければなりません。
誰でも私にこれを手伝ってもらえますか?
答えをありがとう。私の質問の最後に述べたように、私はレガシー目的のためにクラスの構造を変更することはできません。私はリストクラスから継承するしかない。コントローラメソッドで – hosjay
を変更できますか?コントローラーメソッドのいくつかの変更を加えれば、これは実現可能です – Paarth
はい、それは仕事をすることができます。ありがとう。しかし、このケースでは、1つのプロパティに値を与えることを忘れてしまった場合、複製/矛盾を引き起こすすべての単一のプロパティを入力して入力する必要があります。そうでなければ、私はこれが道だと思う。もし私がMyNewListクラスに特別な属性を追加できたら、私の問題はもっと簡単に修正されるだろう... – hosjay