を表示するPartialViewがありますIEnumerable<Movie>
。
_MoviePartial.cshtml
@foreach(var movie in Model) {
<div class="content">
<span class="image"><img src="@movie.Posters.Profile" alt="@movie.Title"/></span>
<span class="title">@movie.Title</span>
<div class="score`">
<span class="critics-score">@movie.Ratings.CriticsScore</span>
<span class="audience-score">@movie.Ratings.AudienceScore</span>
</div>
@Html.ActionLink("Add Movie", "Add", "MyMovies")
</div>
}
ユーザーが[映画の追加]ActionLinkをクリックすると、ajax投稿を実行して、選択した映画をユーザーコレクションに追加します。Movie
私の問題は、選択したクラス全体を「追加」アクションに送信したいのですが、Movie
クラス全体がPartialViewにレンダリングされず、いくつかのプロパティだけであるため、各ムービーをシリアル化する方法がわからないことです。私はこのようなものをシリアル化できることを知っています...
<script type="text/javascript">
var obj = @Html.Raw(Json.Encode(movie));
</script>
しかし、それがhtmlをレンダリングするforeachループ内、特に。内でどのように機能するかはわかりませんPartialView
。
したがって、明確にするために、ユーザーが[映画の追加]をクリックすると、それぞれの映画ActionLink
のシリアル化されたMovie
クラスがajaxを介してコントローラーに送信されます。
私の質問は...
各映画をシリアル化し、それぞれのアンカーに追加するためのより良い方法はありますか?html5属性があることは知っていdata-
ますが、jsonオブジェクトではなく、文字列値のみを許可すると思いました。jQueryの関数を使用できることも知っ.data()
ていますが、PartialViewからそれを実行する方法を考えるのに苦労しています。特にによってレンダリングされたhtmlが_MoviePartial.cshtml
ajaxを介してコントローラーから返される可能性があるためです。