2015-11-29 15 views
10

में देखने के लिए सूची डेटा प्राप्त करें मेरे पास एक ऐसा दृश्य है जिसमें मैंने लूप में आंशिक दृश्य प्रस्तुत किया है। सूची में प्रत्येक आइटम के साथ एक सूची और आंशिक दृश्य बाध्य है। मूल्य दर्ज होने के बाद मुझे नियंत्रक पर सूची का मूल्य नहीं मिल रहा है।नियंत्रक

<table id="resourceRequirement" class="table" width="100%" border="0"> 
    <thead> 
     <tr style="background-color:#dfdfdf;"> 
      <td><div align="center">PRIORITY</div></td> 
      <td><div align="center">SYSTEM RESOURCE/COMPONENT</div></td> 
      <td><div align="center">RECOVERY TIME OBJECTIVE</div></td> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in Model.ResourceRequirement) 
     { 
      @Html.Partial("~/Views/Shared/_ResourceRequirement.cshtml", item) 
     } 
    </tbody> 
</table> 

यहाँ मेरी आंशिक दृश्य है:

यहाँ मेरे विचार है

@model DisasterManagementSystem.Models.BusinessImpactAnalysis.ResourceRequirement 
<tr> 
    <td> 
     @Html.TextBoxFor(m => m.priority)<br /> 
     <div style="color:red;"> 
      @Html.ValidationMessageFor(model => model.priority) 
     </div> 
    </td> 
    <td> 
     @Html.TextBoxFor(m => m.systemresource)<br /> 
     <div style="color:red;"> 
      @Html.ValidationMessageFor(model => model.systemresource) 
     </div> 
    </td> 
    <td> 
     @Html.TextBoxFor(m => m.receveryTime)<br /> 
     <div style="color:red;"> 
      @Html.ValidationMessageFor(model => model.receveryTime) 
     </div> 
    </td> 
</tr> 

यहाँ मेरी सूची है:

public List<ResourceRequirement> ResourceRequirement { get; set; } 

और वर्ग यहाँ है:

public class ResourceRequirement 
{ 
    [Required(ErrorMessage = "*")] 
    public string priority { get; set; } 

    [Required(ErrorMessage = "*")] 
    public string systemresource { get; set; } 

    [Required(ErrorMessage = "*")] 
    public string receveryTime { get; set; } 
} 

कृपया सलाह दें कि जब मैं पोस्ट पर मॉडल से सूची प्राप्त करने की कोशिश कर रहा हूं तो मुझे सूची शून्य मिल रही है।

+0

दृश्य दिखाने के लिए हो सकता है कि नियंत्रक कार्रवाई है, यह दृश्य मॉडल में किसी भी मूल्य की आपूर्ति नहीं की थी गाया? –

+0

प्रारंभिक रूप से खाली फॉर्म को विवरण भरने के बाद प्रस्तुत किया जाता है जो मूल्यों को वापस नहीं कर रहा है। केवल शून्य –

+0

लौट रहा है क्या आप नियंत्रक कोड भी दिखा सकते हैं? – levelonehuman

उत्तर

7

आप एक foreach पाश की का उपयोग करें और एक आंशिक indexers बिना name गुण नकल पैदा कर रहा है (ताकि एक संग्रह करने के लिए बाध्य नहीं कर सकते हैं) और id विशेषताएं (अवैध एचटीएमएल) नकल।

आंशिक दृश्य के बजाय, EditorTemplate का उपयोग करें। ResourceRequirement.cshtml के लिए अपने वर्तमान आंशिक दृश्य का नाम बदलें (यानी वर्ग के नाम से मेल करने के लिए) और मुख्य ध्यान में रखते हुए फिर /Views/Shared/EditorTemplates फ़ोल्डर में रखें (या /Views/yourController/EditorTemplates फ़ोल्डर में)

, foreach पाश को हटाने और

साथ बदलें
<tbody> 
    @Html.EditorFor(m => m.ResourceRequirement) 
</tbody> 

EditorFor() विधि IEnumerable<T> स्वीकार करता है और अपने संग्रह में प्रत्येक आइटम के लिए सही एचटीएमएल उत्पन्न करता है। आप एचटीएमएल का निरीक्षण किया, तो अब आप सही नाम अपने रूप में जिम्मेदार बताते हैं देखेंगे

<input type="text" name="ResourceRequirement[0].priority" .... /> 
<input type="text" name="ResourceRequirement[1].priority" .... /> 
<input type="text" name="ResourceRequirement[2].priority" .... /> 

को नियंत्रित करता है आदि जो अपने मॉडल के लिए बाध्य होगा जब आप प्रपत्र (क्या आपके वर्तमान में पैदा करने के साथ इस तुलना)

+0

संपादक टेम्पलेट के लिए मेरा फ़ोल्डर पथ क्या होना चाहिए। मुझे आपकी लाइन का अर्थ नहीं मिला "/ Views/Shared/Editor टेम्पलेट फ़ोल्डर (/ Views/yourController/EditorTemplates फ़ोल्डर में)" –

+0

क्या आप jquery का उपयोग कर उपरोक्त तालिका में पंक्ति जोड़ने के लिए मार्गदर्शन कर सकते हैं ?? ताकि हम डेटा –

+0

प्राप्त कर सकें मान लें कि आपके नियंत्रक को 'होमकंट्रोलर' नाम दिया गया है, फिर यह 'दृश्य/साझा/संपादक टेम्पलेट्स /' फ़ोल्डर या 'दृश्य/होम/संपादक टेम्पलेट्स/फ़ोल्डर' में हो सकता है।व्यू इंजन नियंत्रक विशिष्ट फ़ोल्डर में पहले 'EditorTemplates' की खोज करता है, और यदि उसे कोई नहीं मिलता है, तो यह 'साझा' फ़ोल्डर में खोज करता है। यह आपको प्रत्येक वर्ग के लिए एकाधिक 'संपादक टेम्पलेट्स' रखने की अनुमति देता है। आपके मामले में, बस इसका नाम बदलें और उसे '/ Views/Shared/Editor टेम्पलेट्स' फ़ोल्डर –

2

प्रस्तुत आप सूची बस नियंत्रक में देखें में पारित होने के लिए चाहते हैं के रूप में की तरह

public Actionresult List() 
{ 
    var search = from m in db.resourcerequirement select m; 
    return PartialView("_List",search.tolist()); 
} 

एक विधि के माध्यम से सूची से पारित है कि आंशिक देखें _List

में करने के बाद 0

आंशिक

@{Html.RenderAction("List", "ControllerName");}