Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何序列化IEnumerable for ajax post中的每个项_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 如何序列化IEnumerable for ajax post中的每个项

Asp.net mvc 如何序列化IEnumerable for ajax post中的每个项,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我有一个显示IEnumerable的局部视图 \u 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">

我有一个显示
IEnumerable
的局部视图

\u 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>
}
但我不确定在呈现html的foreach循环中,尤其是在
PartialView
中,这将如何工作

因此,需要明确的是,当用户单击“添加电影”
ActionLink
时,我希望通过ajax将相应电影的序列化
Movie
类发送到我的控制器

我的问题是


有没有更好的方法来序列化每部电影并将其附加到各自的主播中?我知道有
data-
html5属性,但我认为它们只允许字符串值,不允许json对象。我也知道我可以使用jQuery的
.data()
函数,但我正在努力思考如何从PartialView运行它,特别是因为
\u MoviePartial.cshtml
呈现的html可以通过ajax从控制器返回。

我的首选是返回一个JSON对象作为带有两个属性的响应;HtmlString和数据。HtmlString可能包含呈现的部分视图,数据可能包含请求的序列化对象

我发现使用JSON非常容易,然后尝试返回带有嵌入式JSON对象的HTML。

这样的框架会让您的生活更加轻松

基本上,你会:

  • 使用例如:
    JSON.Encode(Model)将所有电影数据作为JSON数组加载
  • 创建一个使用敲除来呈现您的数据。然后,Knockout将处理将显示的电影保持为完整电影模型的问题
  • <script type="text/javascript">
        var obj = @Html.Raw(Json.Encode(movie));
    </script>