編集: サンプルのダウンロード コードを含む Steven のブログ投稿を参照してください: http://blog.stevensanderson.com/2012/03/06/single-page-application-packages-and-samples/
ヘルパーにアクセスする方法もわかりません。知りたいので、それで遊ぶことができます:-)
これは今のところトリックを行うようです:
<script src="../../Scripts/knockout-2.0.0.js" type="text/javascript"></script>
<script src="../../Scripts/upshot.js" type="text/javascript"></script>
<script src="../../Scripts/upshot.compat.knockout.js" type="text/javascript"></script>
<script type="text/javascript">
upshot.metadata({ "CLASSNAME:#NAMESPACE":{ "key": ["aId"],
"fields": {
"aId": { "type": "Int32:#System" },
"Title": { "type": "String:#System" },
"Description": { "type": "String:#System" },
"Effort": { "type": "Double:#System" }
}
}
});
var myDataSource = new upshot.RemoteDataSource({
providerParameters: {
url: "http://localhost:7018/api/CONTROLLERNAME",
operationName: "",
operationParameters: {}
},
entityType: "CLASSNAME:#NAMESPACE"
});
myDataSource.refresh(function (results) {
alert(results[0].Title());
});
</script>
CLASSNAME:#NAMESPACE をクラス名と名前空間に置き換える必要があります。たとえば、「WorkItem:#MySystem.Models」のようになります。
この場合、CONTROLLERNAME をコントローラーの実際の名前に置き換えます。
public class MyTasksController : ApiController
CONTROLLERNAME を MyTasks に置き換える必要があります
モデルオブジェクトに従って、メタデータ内のものを埋めます。これは大変な作業なので、コード サンプルがすぐにオンラインになることを願っています :-(