/ / आंशिक दृश्य कहलाते समय Foreach काम नहीं कर रहा है - सी #, asp.net-mvc, razor

आंशिक दृश्य कहलाए जाने पर Foreach काम नहीं कर रहा है - सी #, asp.net-mvc, razor

पढ़ने के बाद इस मैं अपने कोड पर गया और अपना विचार आंशिक रूप से बदल दियासभी रिटर्न जो बदले में आंशिक विचार लौटने के लिए विचार वापस कर देंगे। तब मैंने एक पृष्ठ में अपना आंशिक दृश्य बुलाया, आश्चर्यजनक रूप से पर्याप्त जब मैं अपना आंशिक दृश्य कहता हूं तो यह एक त्रुटि उत्पन्न करता है: "वस्तु का संदर्भ वस्तु की आवृत्ति अनुसार सेट नहीं. है। " विवरण के लिए इसे देखें बात यह है कि मेरा आंशिक दृश्य ठीक काम करता है जब मैं इसका परीक्षण करता हूं तो यह किसी अन्य पृष्ठ में उपयोग होने पर लोड नहीं होता है। यहां समस्या क्या है?

आंशिक दृश्य कोड:

@model IEnumerable<MvcMovieClean.Models.MovieClean>

<h2>Index</h2>

<p>
@Html.ActionLink("Create New", "Create")
</p>
<div class="album">
<div class="container">
<div class="row">



@foreach (var item in Model)
{
<div class="card">
<img alt="100%x280" src="/images/@Html.DisplayFor(modelItem => item.ImgURL)"/>
<p class="card-text">@Html.DisplayFor(modelItem => item.Plot)</p>
</div>

}

</div>
</div>
</div>

मैं पृष्ठ में आंशिक दृश्य कैसे कॉल कर रहा हूं:

<div class="row">
@Html.Partial("~/Views/Movies/Index.cshtml")
</div>

उत्तर:

जवाब के लिए 2 № 1

ऐसा इसलिए है क्योंकि आपने मॉडल ऑब्जेक्ट को पास नहीं किया है और यह असफल हो जाएगा क्योंकि यह शून्य होगा, अगर आपके पास इस आंशिक दृश्य के लिए नियंत्रक में कार्रवाई है, तो मैं इसका उपयोग करके इसे कॉल करने का सुझाव दूंगा Html.Action या Html.RenderAction पसंद:

संभावित समाधान 1:

<div class="row">
@Html.Action("Index","Movies")
</div>

यदि आपके पास पहले से है MoviesController कक्षा और उसमें आप नाम की एक क्रिया विधि देखेंगे Index, Html.Action("Index","Movies") इंडेक्स विधि को कॉल करेगा MoviesController कक्षा और ब्राउज़र में प्रतिक्रिया के रूप में आंशिक दृश्य के लौटा एचटीएमएल प्रस्तुत करेगा।

और आपकी कार्रवाई में डेटाबेस से फिल्में प्राप्त करने के लिए कोड शामिल होगा और आंशिक दृश्य में वापस आना होगा:

public ActionResult Index()
{

var movies = ...// call to db to get them

return PartialView("~/Views/Movies/Index.cshtml",movies);
}

संभावित समाधान 2:

यदि आपके पास मूल दृश्य के मॉडल में फिल्में संग्रह हैं, तो आपको इसे आंशिक दृश्य में पास करने की आवश्यकता है जैसे:

<div class="row">
@Html.Partial("~/Views/Movies/Index.cshtml",Model.Movies)
</div>

जवाब के लिए 2 № 2

यह देखते हुए कि आप मॉडल को अपने आंशिक दृश्य में नहीं पारित कर रहे हैं।

आपको कुछ ऐसा होना चाहिए:

<div class="row">
@Html.Partial("~/Views/Movies/Index.cshtml", model)
</div>

जहां मॉडल का एक उदाहरण है

IEnumerable<MvcMovieClean.Models.MovieClean>