我正在创建链接一个按钮,当用户点击链接按钮时,我正在调用部分视图。我想点击Actionlink按钮事件并在actionlink中发送参数,但我遇到了问题。我无法发送参数和点击事件。我正在使用类选择器进行单击,如下所示。 这是我的actionlink按钮。
@foreach (var group in Model.records)
{
<tr>
<td>@Html.ActionLink(@group.clientId.ToString(),"",new { @clientId =@group.clientId.ToString(),@class ="delete" },null)</td>
</tr>
}
这是我的jquery代码。
$('.delete').click(function (id) {
alert(1);
$.ajax({
type: 'POST',
dataType: 'html',
data: { clientId: id },
url: '/DocumentVerification/detailsbyClientId',
success: function (data) {
$('#detailsbyclientId').html("");
$('#detailsbyclientId').html(data);
}
});
});
目前,当我点击url下面的actionlink将在浏览器中。 任何人都可以建议我哪里出错了?提前谢谢。
http://localhost:62777/DocumentVerification?clientId=1006&class=delete
答案 0 :(得分:0)
因为您将路由值对象和 html属性对象混合到单个对象,并将其作为单个参数传递给方法。您当前的通话符合以下超载
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
object routeValues,
object htmlAttributes
)
因此,您的单个对象将转到routeValues参数,并且您正在为第四个参数传递null
(htmlAttributes
)
将html属性作为单独的参数传递。您还可以指定要为ajax调用调用的URL作为链接href。这是我正在使用另一个重载,其中我指定了操作名称和控制器名称以及路由值。
@Html.ActionLink(group.clientId,"detailsByClientId","DocumentVerification"
,new { clientId =group.clientId}, new {@class ="delete" })
这将生成href值的链接,如"/DocumentVerification/DetailsByClientId?clientId=25"
和css class delete
现在,因为clientId位于查询字符串中,所以您只需使用单击项目的url(href值)进行ajax调用。
$('.delete').click(function (e) {
e.preventDefault();
$.post($(this).attr("href"),function(data){
$('#detailsbyclientId').html(data);
});
});
答案 1 :(得分:0)
您的ActionLink()
错误,您将类名添加为路线值。但是没有必要使用ActionLink()
(如果这样做,则需要取消默认重定向)。此外,方法中的id
参数是事件对象(不是值)
将html更改为
<a href="#" data-id="@group.clientId" class="delete">@group.clientId</a>
和脚本
$('.delete').click(function (id) {
var id = $(this).data('id');
$.ajax({
type: 'POST',
dataType: 'html',
data: { clientId: id },
url: '@Url.Action("detailsbyClientId", "DocumentVerification")', // don't hard code url's
success: function (data) {
// $('#detailsbyclientId').html(""); not required
$('#detailsbyclientId').html(data);
}
});
});
或更简单
var url = '@Url.Action("detailsbyClientId", "DocumentVerification")';
$('.delete').click(function (id) {
var id = $(this).data('id');
$('#detailsbyclientId').load(url, { clientId: id });
});