0

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 を割り当てたいのですが、その方法がわかりません。助けてください...

4

3 に答える 3

2

その特定のリンクには、ID を割り当てます。例えば

<a id="someID" href="url">Link</a>

クリックをそのリンクのみにバインドします。

$('#someID').click(function (e)) ....
于 2012-04-26T05:29:09.557 に答える
0

私があなたを正しく理解していれば、これはあなたを助けます

<a href="/somepath" id="mySuperLink" onclick="myAjaxFunction()">The text of the link</a>
    <script type="text/javascript">
    function myAjaxFunction(){
       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>
于 2012-04-26T05:28:37.613 に答える
0

このようなアクションリンクにcssクラスセレクターを提供してみてください...

@Html.ActionLink("some link", "Create", "Some_Controller", new { }, new { @class = "test" })

それからユーザーjquery..

<script type="text/javascript">
$(document).ready(function () {
  $('.test').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>
于 2012-04-26T05:46:29.913 に答える