私は次のjavascripttest.jsファイルを持っています:
$("#addItem").click(function () {
alert("yup");
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#bandRows").append(html); }
});
return false;
});
これを使用して、ページの「bandRows」divにHTMLを挿入します。私はMVC3アプリでRazorを次のように使用しています:
インデックスビュー。クリックすると、部分的なビューのHTMLを挿入するリンクが含まれています。
@model IEnumerable<TariffBand>
<script type="text/javascript" src="=@Url.Content("~/Scripts/jquery-1.3.2.js")"></script>
<script type="text/javascript" src="=@Url.Content("~/Scripts/MicrosoftAjax.js")"></script>
<script type="text/javascript" src="=@Url.Content("~/Scripts/test.js")"></script>
<h2>Index</h2>
@using (Html.BeginForm())
{
<div id="bandRows">
@foreach (var band in Model)
{
Html.RenderPartial("BandEditorRow", band);
}
</div>
@Html.ActionLink("Add band...", "Add", null, new { id = "addItem" })
<input type="submit" value = "Done" />
現時点では、リンクをクリックするとjavascriptが呼び出されず、アラートボックスが表示されません。リンクは、「bandRows」divに挿入するのではなく、「追加」部分ビューに移動します。
誰か教えてもらえますか?私はこれまでjavascriptを使用したことがないので、明らかに何か気の利いたことをしたことがありますが、私の人生ではそれを解決することはできません。
編集-ハンドラーがonclickではなくclick用になるように.jsファイルを修正しました。また、htmlヘルパーを次のように修正してみました。
@Html.ActionLink("add band...", "Add", null, new { onclick = "addItem" }
しかし、それでもサイコロはありません。
ありがとうDavid