मॉडल से पहले मेरे नियंत्रक में संशोधित किया गया है ( अपडेट या हटाया गया है) मैं यह सत्यापित करने की कोशिश कर रहा हूं कि उपयोगकर्ता निष्पादित करने वाले उपयोगकर्ता वास्तव में उस ऑब्जेक्ट का मालिक है जिसे वे संशोधित करने का प्रयास कर रहे हैं।मॉडल स्वामित्व जांच
मैं वर्तमान में विधि स्तर पर ऐसा कर रहा हूं और यह थोड़ा अनावश्यक लगता है।
[HttpPost]
public ActionResult Edit(Notebook notebook)
{
if (notebook.UserProfileId != WebSecurity.CurrentUserId) { return HttpNotFound(); }
if (ModelState.IsValid)
{
db.Entry(notebook).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(notebook);
}
क्या ऐसा करने का एक सामान्य तरीका है जो विभिन्न मॉडलों में पुन: प्रयोज्य हो सकता है?
क्या यह ActionFilter
के साथ ऐसा करना संभव है?
जोड़ना नहीं होगा [बाइंड (बहिष्कृत = "UserProfileID")] मॉडल बाध्यकारी द्वारा बदला जा रहा है? आदर्श रूप में मैं एक व्यूमोडेल लौटाना चाहता हूं जिसमें कोई आईडी फ़ील्ड नहीं है और केवल उन लोगों को टेम्पैडाटा या कुछ (संग्रहीत नहीं) में संग्रहीत किया गया है ... – mezmi
हां यह होगा, लेकिन फिर यह कहां से आएगा? :) – blowdart
हाँ, मुझे लगता है कि मैंने वास्तव में यह नहीं सोचा था। जैसे मैंने कहा, मैं एक व्यूमोडेल वापस करना चाहता हूं जिसमें कोई आईडी फ़ील्ड नहीं है, मुझे पता नहीं है कि कॉल के बीच एमवीसी में अस्थायी रूप से उस आईडी को कहां स्टोर करना है - सत्र>:) का उपयोग करने के अलावा .... इस तरह से मैं कर सकता था मेरे पीओसीओ को नियंत्रक को वापस करें और ऑटोमैपर का उपयोग करें या कुछ व्यूमोडेल हाइड्रेट करें। – mezmi