मैं एमवीसी के लिए बिल्कुल नया हूं और वास्तव में मॉडल बाइंडिंग में उपयोग करने की कोशिश कर रहा हूं। मेरे पास एक साधारण मॉडल है जिसे मैंने एक रूप में बनाया है। हालांकि, जब मैं केवल उस फॉर्म को पोस्ट करता हूं तो टेक्स्टबॉक्स मान नियंत्रक को ले जा रहे हैं। मुझे विवरण फ़ील्ड की भी आवश्यकता है जो DisplayTextFor का उपयोग करके किया जाता है। क्या यह कुछ है जिसके लिए मुझे कस्टम मॉडल बाइंडर बनाना है? मैं एक शॉर्टकट ले सकता हूं और विवरण को केवल सीमा के बिना केवल पढ़ने के लिए टेक्स्टबॉक्स बना सकता हूं, इसलिए यह टेक्स्ट की तरह दिखता है, लेकिन मैं इसे सही तरीके से करना चाहता हूं।एमवीसी 3 पूरे मॉडल को पोस्ट नहीं कर रहा है
public class FullOrder
{
public List<FullOrderItem> OrderList { get; set; }
public string account { get; set; }
public string orderno { get; set; }
}
public class FullOrderItem
{
public int? ID { get; set; }
public int? OrderId { get; set; }
public string Description { get; set; }
public int Qty { get; set; }
public decimal? Price { get; set; }
}
यहाँ है देखें
<table class="ExceptionAltRow">
<tr style="background-color: #DDD;">
<td class="strong" style="width:500px;">
Description
</td>
<td class="strong" style="width:100px;">
Qty
</td>
<td class="strong" style="width:100px;">
Previous Purchases
</td>
</tr>
@for (int i = 0; i < Model.FullOrder.OrderList.Count(); i++)
{
<tr>
<td>
@Html.DisplayTextFor(m => m.FullOrder.OrderList[i].Description)
</td>
<td>
@Html.TextBoxFor(m => m.FullOrder.OrderList[i].Qty, new { @style = "width:50px;" })
</td>
</tr>
}
</table>
यहाँ है नियंत्रक::
[HttpPost]
public ActionResult AddItem(FullOrder f)
{
//doesn't work description is not passed but qty is
}
वहाँ एक रास्ता है कि मैं अपने मॉडल मिल बस पर पारित करने के लिए कर सकते हैं है यहाँ मेरी कोड है एक पोस्ट पर विवरण भले ही यह मेरे मॉडल से बाध्य आइटम के लिए एक टेक्स्टबॉक्स नहीं है?
धन्यवाद में शामिल होंगे, वास्तव में क्या मुझे पता है की जरूरत है। – mscard02
यदि कोई उत्तर उपयोगी है, तो आपको इस तरह इंगित करने के लिए ऊपर तीर पर क्लिक करना चाहिए। –