Ajax 関数を作成しましたが、大きな問題が発生しています。
リンクをクリックするとコンテンツが表示されました..リンクはデータベースから取得され、リンクのURLもデータベースから取得されます。リンクのクリック時にコンテンツを動的に呼び出す ajax を作成しました
<script type="text/javascript">
$(document).ready(function () {
$('a').click(function (e) {
e.preventDefault();
var filename = $(this).text();
var Hobbyurl = '@Url.Action("FetchUrlByHobbyName")';
$.ajax({
type: "POST",
url: Hobbyurl,
data: { data: filename },
success: function (returndata) {
$('iframe').attr('src', returndata);
}
});
});
});
</script>
FetchUrlByHobbyName は、URL を返すコントローラーから呼び出される関数です。
//Ajax routine to fetch the hobbyinfo by hobbyname
[HttpPost]
public ActionResult FetchUrlByHobbyName(string data)
{
HobbyMasters hobbymaster = new HobbyHomeService().FetchHobbyMasterByHobbyName(data);
string url = hobbymaster.InformationUrl;
if (HttpContext.Request.IsAjaxRequest())
return Json(url);
return View();
}
そして私のビューでは、次のようなリンクを書きました:
@foreach (var item in Model)
{
<li >@Html.ActionLink(item.HobbyName, "Hobbies")
</li>
}
私はこれを試しました:
@Html.ActionLink(item.HobbyName, "Hobbies", null, new { id = "alink" })
そして、「alink」をクリックしてAjaxを呼び出しますが、これで私のajax関数は呼び出されません。
問題は、ページ上のすべてのリンクをクリックすると ajax 関数が呼び出されることです..
一意の ID を割り当てたいのですが、その方法がわかりません。助けてください...