基本的なMVCアプリを作成しました。
ホームビューの場合、Create.cshtmlページを次のように作成しました。
<h2>title Create</h2>
ホームコントローラーにgetメソッドを追加しました。
public ActionResult Create(int id)
{
return View();
}
私のIndex.cshtmlビューには、次のものがあります。
@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">
http://asp.net/mvc</a>.
</p>
<div class="clicky">click me</div>
<script type="text/javascript">
$(function () {
$(".clicky").click(function () {
$.get('@Url.Action("Create")', { id: "1" }, function () {
});
});
});
</script>
それを実行したときの驚きを想像してみてください。クリックしても画面が変わらないことがわかりました。
Createにブレークポイントを設定すると、メソッドが実際に入力されていることがわかりました。また、firebugはエラーの兆候を示していませんでした。
次に、スクリプトを次のように変更しました。
<script type="text/javascript">
$(function () {
$(".clicky").click(function () {
//$.get('@Url.Action("Create")', { id: "1" }, function () {
//});
window.location.href = '/Home/Create/1';
});
});
</script>
これで、アプリは期待どおりに機能し、作成ビューが返されました。
以前の方法がうまくいかなかった理由を誰かに説明してもらえますか?