无法在mvc4 actionlink中点击和发送参数
Unable to click and send parameters in mvc4 actionlink
我正在创建 link 一个按钮,当用户单击 link 按钮时,我将调用局部视图。我想单击 Actionlink 按钮的事件并在 actionlink 中发送参数,但我遇到了问题。我无法发送参数和点击事件。我正在使用 class 选择器进行点击,如下所示。
这是我的操作link按钮。
@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);
}
});
});
目前当我点击 link 下面的操作时 url 将出现在浏览器中。
谁能建议我哪里出错了?提前致谢。
http://localhost:62777/DocumentVerification?clientId=1006&class=delete
因为您将 路由值对象 和 html 属性对象 混合到单个对象并将其传递给方法作为单个参数。您当前的通话符合以下超载
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
object routeValues,
object htmlAttributes
)
因此您的单个对象将转到 routeValues 参数,并且您正在为第四个参数传递 null
(htmlAttributes
)
将 html 属性作为单独的参数传递。您还可以指定要为 ajax 调用的 url 作为 link href.Here 我正在使用另一个重载,其中我指定了操作名称和控制器名称与路由值。
@Html.ActionLink(group.clientId,"detailsByClientId","DocumentVerification"
,new { clientId =group.clientId}, new {@class ="delete" })
这将生成具有 href 值的 link,例如 "/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);
});
});
您的 ActionLink()
错误,您将 class 名称添加为路由值。但是没有必要使用 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 });
});
我正在创建 link 一个按钮,当用户单击 link 按钮时,我将调用局部视图。我想单击 Actionlink 按钮的事件并在 actionlink 中发送参数,但我遇到了问题。我无法发送参数和点击事件。我正在使用 class 选择器进行点击,如下所示。 这是我的操作link按钮。
@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);
}
});
});
目前当我点击 link 下面的操作时 url 将出现在浏览器中。 谁能建议我哪里出错了?提前致谢。
http://localhost:62777/DocumentVerification?clientId=1006&class=delete
因为您将 路由值对象 和 html 属性对象 混合到单个对象并将其传递给方法作为单个参数。您当前的通话符合以下超载
public static MvcHtmlString ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
object routeValues,
object htmlAttributes
)
因此您的单个对象将转到 routeValues 参数,并且您正在为第四个参数传递 null
(htmlAttributes
)
将 html 属性作为单独的参数传递。您还可以指定要为 ajax 调用的 url 作为 link href.Here 我正在使用另一个重载,其中我指定了操作名称和控制器名称与路由值。
@Html.ActionLink(group.clientId,"detailsByClientId","DocumentVerification"
,new { clientId =group.clientId}, new {@class ="delete" })
这将生成具有 href 值的 link,例如 "/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);
});
});
您的 ActionLink()
错误,您将 class 名称添加为路由值。但是没有必要使用 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 });
});