2009-08-04 34 views
1

我有以下JavaScript從某處獲取HTML並將其粘貼在tinymce的textarea中。asp.net-mvc是否有可能獲取ViewData並將其粘貼在JavaScript函數中

我的問題是如何在asp.net-mvc我可以得到這裏的HTML並將其粘貼在JavaScript?

我把它放在ViewData中嗎?

function ajaxLoad() { 
     var ed = tinyMCE.get('elm1'); 
     // Do you ajax call here, window.setTimeout fakes ajax call 
     ed.setProgressState(1); // Show progress 
     window.setTimeout(function() { 
      ed.setProgressState(0); // Hide progress 
      ed.setContent('HTML Here'); 
     }, 500); 
    } 

我想有這樣的事情下文,但它似乎並沒有工作:

function ajaxLoad() { 
     var ed = tinyMCE.get('elm1'); 
     // Do you ajax call here, window.setTimeout fakes ajax call 
     ed.setProgressState(1); // Show progress 
     window.setTimeout(function() { 
      ed.setProgressState(0); // Hide progress 
      ed.setContent(<% ViewData["test"] %>); 
     }, 500); 
    } 

回答

5

我認爲ajax調用可能最適合您,但也要確保您嘗試<%= ViewData["test"],請注意第一個百分號之後的「=」。你給出的例子不會像你在那裏發佈ViewData字段的值(也許這只是一個錯字?)。

0

我用這個;

在我看來,

$.post("/jQueryTests/jQueryAddMessageComment", { commentText: commentText }, function(newComment) { 
      $("#divComments" + id.toString()).html(newComment); 
     }); 

如果我返回Json數據的話;

$.post("/Articles/jQueryDownVoteArticle", { id: id }, function(votes) { document.getElementById("ArticleVotes").innerHTML = votes; }, "json"); 

在我的控制器;

return PartialView("commentList", new FormViewModel { LastComment = commentText }); 

重要的是你如何返回到視圖。你也可以這樣回來;

return Json(new FormViewModel { LastComment = commentText }); 

請記住,您正在替換html的控件需要具有唯一的ID。

這是你問的嗎?

3

如果在ASPX或ASCX頁是那麼你可以做的是完全一樣在你的榜樣 - 一個微小的變化:

ed.setContent(<%= ViewData["test"] %>); // the equals sign 

如果你在一個* .js文件是文件,然後是韓元「T的工作,但你可以在ASPX,ASCX文件中設置

<input type="hidden" id="myTestData" value='<%=ViewData["test"]%>' /> 

,然後通過jQuery獲得的價值:

$("#myTestData").val(); 

編輯:該死的,我錯過了<input線上的結局%>。

+0

視覺工作室似乎沒有認識到這一點。或者至少給我黃色突出顯示 – leora 2009-08-04 03:26:49

相關問題