私の問題を解決する方法を誰かが知っていることを願っています。 私はToastrをインストールして、ASP.NET MVCアプリケーションに通知を表示しました。 そして、私が持っているコントローラから渡されたすべての要素のためのテーブルとforeachループを持つビューです:foreachループのトースト
@section scripts {
<script type="text/javascript">
$(document).ready(function() {
toastr.options = {
"closeButton": false,
"debug": false,
"newestOnTop": false,
"progressBar": false,
"positionClass": "toast-top-center",
"preventDuplicates": false,
"onclick": null,
"showDuration": "300",
"hideDuration": "1000",
"timeOut": "5000",
"extendedTimeOut": "1000",
"showEasing": "swing",
"hideEasing": "linear",
"showMethod": "fadeIn",
"hideMethod": "fadeOut"
};
$('#alert').click(function() {
toastr.warning('Already signed!')
});
});
$('#myLink').click(function (e) {
e.preventDefault();
$.ajax({
url: $(this).attr("href"),
});
});
</script>
}
そして最後の場合:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CategoryName)
</td>
<td>
@Html.DisplayFor(modelItem => item.StartDate)
</td>
<td>
@{
Html.RenderAction("_CourseQuantityCount", "Course", new { item.CourseID });
}
/@Html.DisplayFor(modelItem => item.MaximumQuantity)
</td>
<td>
@Html.DisplayFor(modelItem => item.Price)
</td>
<td id="alert">
@Html.ActionLink("SignIn", "SignIntoCourse", new { item.CourseID }, new { id = "myLink" })
</td>
</tr>
}
</table>
ビューした後、このように見えるスクリプトセクションがあります私はそれが正常に動作する私のアプリケーションをロードするが、foreachループからの最初の要素のみ。目標は、ユーザーがコースにサインインした場合、既に彼が署名したトーストを受け取ることです。問題はすべてのforeachループの中で同じIDになると思いますが、わかりません。そして、私は複数のIDを作成し、それをページをリフレッシュせずにトーストを受け取るだけの方法でJSスクリプトで使用する方法を知らない。
'id'値**はドキュメント内で一意である必要があります。これが最初の問題です:' id = "alert" 'を持つ複数の要素があります。要素のグループを識別するには、通常はクラスが必要です。 –