layoutのスクリプトに問題がありますので、私は@RenderSection("scripts",
をやっていることを理解しようとしています。レイアウト上のスクリプトをビューに伝播できますか?
レイアウトにJquery/Jquery.UI(js/css)を置くことができますので、すべてのビューに配置する必要はありませんか?なぜなら私はLayout上のheadタグの内側に配置しようとしていて、viewはそれを見なかったからです。
ここは私のレイアウトです。
あなたは、スクリプトのセクションでCSSファイルを含むと<html>
を複製し、スクリプトを複製、文書の外にスクリプトをレンダリングするなど、あなたのコードを持ついくつかの問題を、持っている
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<h1>Test Layout</h1>
<div>
@RenderBody()
</div>
</body>
</html>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
そして、私の見る
@{
ViewBag.Title = "TreeDetails";
Layout = "~/Views/Shared/_LayoutTest.cshtml";
}
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<h2>TEST PAGE</h2>
<div id="dialog" title="Basic dialog">
<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
<button id="opener">Open Dialog</button>
</body>
</html>
@section scripts {
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
// Your code goes here.
$(document).ready(function() {
console.log("before dialog");
$("#dialog").dialog({ autoOpen: false });
console.log("after dialog");
$("#opener").click(function() {
$("#dialog").dialog("open");
});
})
</script>
}
'@RenderSection(...) 'を'