Javascript 将模型项id从Html.ActionLink传递给jquery函数

Javascript 将模型项id从Html.ActionLink传递给jquery函数,javascript,jquery,html,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Html,Asp.net Mvc,Asp.net Mvc 4,我希望能够使用Html.ActionLink()将下面代码中每个项的id传递给jQuery函数 @foreach(模型中的变量项) { 如果(item.AppointmentStatus==“P”) { @DisplayFor(modelItem=>item.Speciality) 日期 临床医生 位置 @DisplayFor(modelItem=>item.AppointmentDate) @DisplayFor(modelItem=>item.ClinicianName)

我希望能够使用Html.ActionLink()将下面代码中每个项的id传递给jQuery函数

@foreach(模型中的变量项)
{
如果(item.AppointmentStatus==“P”)
{   
@DisplayFor(modelItem=>item.Speciality)
日期


临床医生

位置 @DisplayFor(modelItem=>item.AppointmentDate)

@DisplayFor(modelItem=>item.ClinicianName)

@DisplayFor(modelItem=>item.Location) 查看@Html.ActionLink(“,”详细信息“,”我的约会“,”新建{id=item.appointIdentifier.id},新建{onclick=“getAppointmentRef(item.AppointmentIdentifier.id)”)
} } //jQuery-目前还考虑了非常基本的 $(“.appointmentbutton”)。单击(getAppointmentRef); 函数getAppointRef(id){ 警报(id); }
该函数被调用为ok,但即使我传递了一个“hello”,它似乎也传递了一个JSON字符串,其参数中没有一个是“id”I,e。123456789


如何让Actionlink获取该模型项的id?

首先,这里有一个语法错误。我认为这应该是:

onclick = "getAppointmentRef( @item.AppointmentIdentifier.id)"

两个中的一个

但是,我主要会采取不同的方法:

@Html.ActionLink("Link text", "Details", "MyAppointments",  new { id = item.AppointmentIdentifier.id }, new { @class = "myLink", data_id = item.AppointmentIdentifier.id })
然后在jQuery中:

$(".myLink").click(function () {
    alert($(this).data("id"));
});
这样,您就可以更清楚地分离关注点


我希望这能有所帮助。

首先,您在那里有一个语法错误。我认为这应该是:

onclick = "getAppointmentRef( @item.AppointmentIdentifier.id)"

两个中的一个

但是,我主要会采取不同的方法:

@Html.ActionLink("Link text", "Details", "MyAppointments",  new { id = item.AppointmentIdentifier.id }, new { @class = "myLink", data_id = item.AppointmentIdentifier.id })
然后在jQuery中:

$(".myLink").click(function () {
    alert($(this).data("id"));
});
这样,您就可以更清楚地分离关注点


我希望这有帮助。

对于按钮,您可以使用-

<input type="button" data-apptid="@item.AppointmentIdentifier.id" class="myLink" value="Click me!" />

这样,如果您需要在jQuery中执行某些操作,除了加载新页面之外,还可以在那里执行,并让函数确定是否重定向-

<input type="button" data-apptid="@item.AppointmentIdentifier.id" class="myLink" value="Click me!" />

这样,如果您需要在jQuery中执行某些操作,除了加载新页面外,还可以在那里执行操作,并让函数确定是否重定向。

使用Razor创建ActionLink然后启动jQuery单击函数似乎是多余的。我要么用jQuery事件处理程序生成一个输入元素,要么一起去掉jQuery函数,因为如果您只是在更改页面,这其实是不必要的。然而,我只是在教育ConfusedShark如何将jQuery和模型值与最佳实践原则相结合。我相信这不会是他们最终的代码,因为它目前没有多大意义。我也会使用
$(this.data(“id”)
很好的建议LAR,现在更新。非常感谢,胆子把这个技巧做得很好,我现在可以扩展这个功能了。我的代码中确实有单击函数jquery事件处理程序,但在进行调整之前,我已切换到onclick作为启动程序,以使其正常工作。实际上,我并没有在url中传递id,只是将其包含在示例中,以表明它能够成功地完成此操作。使用Razor创建ActionLink,然后启动jQuery click函数似乎是多余的。我要么用jQuery事件处理程序生成一个输入元素,要么一起去掉jQuery函数,因为如果您只是在更改页面,这其实是不必要的。然而,我只是在教育ConfusedShark如何将jQuery和模型值与最佳实践原则相结合。我相信这不会是他们最终的代码,因为它目前没有多大意义。我也会使用
$(this.data(“id”)
很好的建议LAR,现在更新。非常感谢,胆子把这个技巧做得很好,我现在可以扩展这个功能了。我的代码中确实有单击函数jquery事件处理程序,但在进行调整之前,我已切换到onclick作为启动程序,以使其正常工作。实际上,我并没有在url中传递id,只是将其包含在示例中,以显示它能够成功地完成此操作。