2013-01-11 61 views
0

我已經看到其他文章,但我無法得到它的工作。我嘗試了一百萬種不同的方式。我想要做的只是使用默認的移動模板,根據輸入文本框和按鈕點擊從控制器動態生成一些JavaScript。我確信我做錯了。我能得到的最遠是讓JavaScript顯示在頁面上但不能執行。來自控制器的MVC javascript

控制器

[HttpPost] 
    public ActionResult Index(FormCollection Form) 
    { 
     string injectedJS = ""; 
     if (! String.IsNullOrEmpty(Form["searchstring"])) 
     { 
      //create js 
      ViewBag.injectedJS = //<created js> 
      return View(); 
     } 
     else 
     { 
      return View(); 
     } 
    } 

共享視圖

@RenderSection("jsheader", required: false) 

查看

@section jsheader{ 
<script type="text/javascript"> 
    $(document).bind("pageinit", function() { 
     @ViewBag.injectedJS; 
    });  
</script> 
       } 

@using (Html.BeginForm("Index", "mycontroller", FormMethod.Post)) 
{ 
<ul data-role="listview" data-inset="true"> 
    <li data-role="list-divider"></li> 
    <li>    
      <input type="text" name="searchstring" id="searchbox" /> 
    </li> 
</ul> 

<input type="submit" id="searchbutton" autofocus="autofocus" value="Submit"     
}  
+0

請向我們展示實際的HTML源代碼。 – SLaks

回答

0

剃刀視圖自動編碼任何數據你輸出。

您需要致電@Html.Raw(ViewBag.injectedJS)以防止其對HTML進行編碼。

+0

良好的通話,但我如何獲得JavaScript執行?它只是被放回頁面而不執行 –

+0

不知道如何發佈html,但我可以看到在單擊按鈕後,腳本標記下的firebug注入的js。但是,html選項卡仍然顯示最初加載的腳本 –

+0

@patgoode:查看源代碼,然後複製粘貼源代碼。 – SLaks