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