これに関する他の投稿を見たことがありますが、機能させることができません。私は何百万もの異なる方法を試しました。私がやりたいことは、デフォルトのモバイル テンプレートを使用して、入力テキスト ボックスとボタン クリックに基づいてコントローラーから動的に生成された JavaScript を起動することだけです。私はそれを間違っていると確信しています。私が得ることができる最も遠いのは、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"
}