如何在 jquery ajax 中而不是在 html.actionlink 中使用动作名称?

how to use action name in jquery ajax instead of insinde the html.actionlink?

我想使用没有动作名称的 html.actionlink,因为动作名称在 jquery ajax 代码中。 我知道解决这个问题的其他方法,但我想知道如何通过 html.actionlink.

解决这个问题

这是一个 asp.net-mvc 作业,带有 jquery ajax 等。我想通过单击他们的姓名来显示数据库中的学生详细信息。

对不起我的英语不好。发送

<table class="table table-bordered table-hover table-striped" style="direction:rtl">
    <tr>
        نام و نام خانوادگی دانشجو
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>                
                @Html.ActionLink(item.FName + " " + item.LName +
                                    " by JQuery AJAX ", null, null,
                                    new { onclick = "jqueryAjaxDetails(" + item.Id + ")" })
            </td>
        </tr>
    }

</table>
<script>
    function jqueryAjaxDetails(sID) {
        $.ajax({
            type: "POST",
            url: "/University/_AjaxDetails",
            data: JSON.stringify({ id: sID }),
            contentType: "application/json; charset=utf-8",
            datatype: "html",
            success: function (result) {
                $("#Details").html(result);
            },
            error: function (result) {
                alert("Failure.");
            }
        });
    }
</script>

I Found a solution by using (a) tag, like this:

<a href="#" onclick="jqueryAjaxDetails(@(item.Id))">
   @(item.FName+" "+item.LName + "by JQuery AJAX")
</a>

but how can solve this by @Html.Actionlink????

@Html.Actionlink 生成的 html 代码是:

<a href="/University/AjaxList" onclick="jqueryAjaxDetails(3)">Yeganeh MJanlou by JQuery AJAX </a>

此代码有效,但点击后刷新,因为 (href) 不为空。

how can send an empty ActionName link to the (href)?‍♂️

Please try this one

有关详细信息,请单击此 Link

cshtml page

<table class="table table-bordered table-hover table-striped" style="direction:rtl">
    <tr>
        نام و نام خانوادگی دانشجو
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>                
                @Html.ActionLink(item.FName + " " + item.LName +
                                    " by JQuery AJAX ", "_AjaxDetails", "University",
                                    new { onclick = "return  jqueryAjaxDetails(" + item.Id + ")" })
            </td>
        </tr>
    }

</table>

注意:您的 ActionLink 也可以使用,您只需在示例中添加上面提到的 return 语句。

您不能在 Html.ActionLink

中的操作和控制器名称中放置空值

Another way in cshtml page

 <table class="table table-bordered table-hover table-striped" style="direction:rtl">
        <tr>
            نام و نام خانوادگی دانشجو
        </tr>

        @foreach (var item in Model)
        {
            <tr>
                <td>                
                   <a href="#" onclick = "return jqueryAjaxDetails(" + @item.Id + ")">@string.Concat(item.FName," ", item.LName, " by JQuery AJAX")</a>
                </td>
            </tr>
        }

    </table>

Javascript code

<script>
    function jqueryAjaxDetails(sID) {
        $.ajax({
            type: "POST",
            url: '@Url.Action("_AjaxDetails", "University")',
            data: JSON.stringify({ id: sID }),
            contentType: "application/json; charset=utf-8",
            datatype: "html",
            success: function (result) {
                $("#Details").html(result);
            },
            error: function (result) {
                alert("Failure.");
            }
        });
    }
</script>