में @ एचटीएमएल। टेक्स्टबॉक्स का सत्यापन @ HTMLमैं @ Html.Textbox से इनपुट के आधार पर अपडेट करने के लिए एक अद्यतन कार्रवाई का उपयोग करता हूं।एमवीसी 4
@using (Html.BeginForm("Update", "Shopping", new { UserID = Request.QueryString["UserID"] }, FormMethod.Post, new { id = "myForm" }))
{
@Html.ValidationSummary()
@Html.Hidden("id", @Request.QueryString["UserID"] as string)
@Html.Hidden("productid", item.ProductID as string)
@Html.TextBox("Quantity", item.Quantity)
@Html.ValidationMessage("Quantity", "*")
@Html.Hidden("unitrate", item.Rate)
<input type="submit" value="Update" />
}
और मेरे मॉडल वर्ग
[Required(ErrorMessage = "Quantity is required.")]
[Display(Name = "Quantity")]
[Range(2, 100, ErrorMessage = "There is not enough inventory for the product to fulfill your order.")]
public int? Quantity { get; set; }
समस्या है जब टेक्स्ट बॉक्स खाली है मैं सत्यापन संदेश नहीं मिल रहा हूँ है। लेकिन जब मैं @ Html.TextBoxFor
@Html.TextBoxFor(modelItem => item.Quantity)
@Html.ValidationMessageFor(modelitem => item.Quantity)
मैं सत्यापन संदेश प्राप्त हो रहा उपयोग करें। और मेरी अद्यतन कार्रवाई काम नहीं कर रही है।
यहां मेरे पास दो विकल्प हैं।
1. @ HTML में टेक्स्टबॉक्स नाम "qty" को कैसे पास करें। टेक्स्टबॉक्स के लिए ?? (या)
2. मान्यता संदेश @ Html.Textbox में() प्राप्त करने के लिए कैसे @ Html.ValidationMessage()
कोई सुझाव ..
संपादित करें का उपयोग कर: मेरे अद्यतन कार्रवाई
[HttpPost]
public ActionResult Update(string id, string productid, int Quantity, decimal unitrate)
{
if (ModelState.IsValid)
{
int _records = UpdatePrice(id, productid, Quantity, unitrate);
if (_records > 0)
{
return RedirectToAction("Index1", "Shopping", new { UserID = Request.QueryString["UserID"] });
}
else
{
ModelState.AddModelError("","Can Not Update");
}
}
return View("Index1");
}
यह कई मायनों में बहुत गलत है। आप अनिवार्य रूप से सभी एमवीसी के सम्मेलनों को तोड़ रहे हैं, और उम्मीद कर रहे हैं कि यह अभी भी कार्य करे। एमवीसी को टेक्स्टबॉक्स को उस संपत्ति के समान नाम दिया जाना चाहिए जिसे आप मान्य कर रहे हैं। आपको अपने टेक्स्टबॉक्स 'मात्रा' नामकरण करके HTML.TextBox में सत्यापन संदेश प्राप्त होता है। –
मैंने टेक्स्टबॉक्स में भी सटीक नाम "मात्रा" देने का प्रयास किया। लेकिन सत्यापन संदेश नहीं होता है। इसके बजाय मुझे इस तरह का एक संदेश मिलता है। "पैरामीटर डिक्शनरी में नियंत्रक में विधि के लिए गैर-शून्य प्रकार 'System.Int32' के पैरामीटर 'मात्रा' के लिए एक शून्य प्रविष्टि है" – kk1076
ऐसा होने के कई कारण हैं, लेकिन आप यह जानने के लिए पर्याप्त संदर्भ नहीं दिया है कि वे क्या हैं। क्या आपकी मात्रा आपके दृश्य मॉडल की घोंसला वाली वस्तु में है? जब आप TextBoxFor विधि का उपयोग करते हैं, तो वेब पेज के स्रोत को प्रस्तुत करते समय देखें और टेक्स्टबॉक्स के नाम विशेषता को देखें। इसके बजाए इसे "item.Quantity" नाम देने का प्रयास करें। –