2011-10-31 11 views
0

私が理解しているところでは、$.loadのjQueryは要素(divなど)にHTMLを挿入します。しかし、私がしたいのは、MVCコントローラアクションを介してdivに文字列を送ることです。結果をDiv(jQuery)にロード

Public Function Stream() As String 
    Dim streamPath As String = ConfigurationManager.AppSettings.Item("LiveStreamPath") 
    Dim dataStream As String = System.IO.File.ReadAllText(streamPath) 

    dataStream = dataStream.Replace(vbNewLine, "<br/>") 

    Return dataStream 
End Function 

これはURL /ホーム/ストリームにマッピングされ、実際に手動でこの場所に行くのがLiveStreamPathにあるテキストでページを示していHomeControllerGlobal.asax以内です。しかし、別のビューを使ってdiv内のこの情報を表示したい。

jQueryの

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#testmonitor').load('Home/Stream'); 
    }); 
</script> 

ビュー自体には何も特別な、ちょうど<div id="testmonitor"></div>ではありません。

問題は私のjQueryにあると確信しています。文字列の結果をtestmonitorにロードするスクリプトを取得するにはどうすればよいですか?

EDIT:ビューのURLは〜/ Home/MonitorTests?Length = 4と表示されます。速いgoogle検索では、Lengthプロパティが追加されているということは、文字列が実際にビューに渡されていることを示しています。

+0

どうしたの?何が起こるのですか? – SLaks

+0

XSSの穴があります。 – SLaks

+0

コントローラHome/Streamがビューに依存している場合は、代わりにコントローラにビューをロードすべきですか?これで、ホーム/ストリームのコンテンツを存在しない要素にロードしているようです: –

答えて

1

あなたはルートにいなければ動作しません、相対パスを使用しています。

.load('/Home/Stream')に変更してください。

+0

これは問題を解決しませんでした。私はそれがコントローラが実際に返すものともっと関係があると思う。 – Kevin

関連する問題