0

Html.ActionLink() を使用して、以下のコードの各アイテムの ID を jQuery 関数に渡すことができるようにしたいと考えています。

@foreach (var item in Model)
    {
        if (item.AppointmentStatus == "P")
        {   
        <div class="appointment-main-block" role="menuitem" tabindex="20">
            <div class="appointment-heading">
                @Html.DisplayFor(modelItem => item.Speciality)
            </div>
            <div class="appointmenttitle">
                Date
               <br />
                <br />
                Clinician
               <br />
                <br />
                Location
            </div>
            <div class="appointmentdata">
                @Html.DisplayFor(modelItem => item.AppointmentDate)
                <br />
                <br />
                @Html.DisplayFor(modelItem => item.ClinicianName)
                <br />
                <br />
                @Html.DisplayFor(modelItem => item.Location)
            </div>

            <div class="appointmentbutton appointmentbuttonclickable">
                View @Html.ActionLink(" ", "Details", "MyAppointments",  new { id = item.AppointmentIdentifier.id }, new { onclick = "getAppointmentRef( item.AppointmentIdentifier.id)" })
                <br />
                <img src="/Content/images/icons/view.png" alt="view icon" />
            </div>
        </div>
        }
    }

// jQuery - Very Basic for now also considered
$(".appointmentbutton").click(getAppointmentRef);
    function getAppointmentRef(id) {
                alert(id);
            }

関数はokと呼ばれますが、「hello」を渡しても、パラメーターが「id」ではないJSON文字列を渡すようです。123456789

Actionlink にそのモデル アイテムの ID を取得させるにはどうすればよいですか?

4

2 に答える 2

3

まず、構文エラーがあります。これは、次のように読むべきだと思います。

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

または

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

2つのうちの1つ。

ただし、原則として、私は別のアプローチを取ります。

@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"));
});

そうすれば、懸念事項をより明確に分離できます。

これが役立つことを願っています。

于 2013-04-09T16:40:20.687 に答える
0

ボタンには、次のようなものを使用できます-

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

そして、あなたのjQueryは、Mobyが言及したようなものになる可能性があります-

$(".myLink").click(function () {
    document.location.href = "/MyAppointments/Details/" & $(this).data("apptid");
});

このようにして、新しいページをロードするだけでなく、jQuery で何かをする必要がある場合は、そこでそれを行い、関数にリダイレクトするかどうかを決定させることができます。

于 2013-04-09T16:49:53.037 に答える