ASP.NETでは、私はascxコントロールを持っていて、独自のLoad()メソッドでScriptmanager.RegisterClientScriptBlock
を呼び出します。asp.net MVCでJavascriptコントロールを作成/レンダリングするにはどうすればよいですか?
私はオフに行くと、ページ上のコントロールを作成するために私のJavaScriptライブラリのメソッドになり
var myObject = CreateNewMyObject(param, param, param...);
のようなジャバスクリプトのブロックを持っていると思います。
しかし、MVCではこれまでにこれをやったことがないので、何をすべきか分かりません。
@(this.Html.RenderMyObject(param、param))など、完全にレンダリングされたhtmlを返すメソッドを呼び出すことができますが、私は上記のようにしたいと思います - javascript関数はhtmlをレンダリングします。
このような方法でvar myObject = CreateNewMyObject(param, param, param...);
を返す必要がありますか、それとももっと良い方法がありますか?
ええ、私の質問は少しひどく言われていると思います。私のコントロールが ' hello [name]'私のhtmlヘルパーは@(renderHello( "bob"))になります。あなたが言うようにfunction()コールを注入するが、パラメータを渡す必要があるので、 ' 'しかし、それはやや粘りそうだ。 – NibblyPig
私はまだ私が望むように私は多くのjavascriptについて知らないので、私を許してください。しかし、あなたの問題があなたのアプローチのわずかな変化に続くと想像する方法。 '@(renderHello(" bob "))'を使うのではなく、htmlの 'にスパンを設定するだけです。次に、あなたのjavascriptに 'myMethodCall(someId、 'bob');'があります。それは素晴らしい、そして不粘着のiircではない。次に、実際のデータが必要なので、モデルを使用してデータをJavaScriptに渡します。 '$(function(){@foreach(var t in model)myMethodCall(someId、t.Name)})') '(おそらく無効な構文) – Quickhorn
もう少し考えれば、あなたのJavaScriptはおそらくスパンそれを別の要素に追加します。繰り返しますが、私はこれが役立ち、間違ったアプローチではないことを願っています。 – Quickhorn