में एक वैकल्पिक पैरामीटर पारित करने के लिए यह काम करता है:कैसे ActionResult
public ActionResult Edit(int id, CompPhone cmpPhn)
{
var vM = new MyViewModel();
if (cmpPhn != null) { vM.CmpPhnF = cmpPhn; }
...
}
अगर मैं cmpPhn वैकल्पिक बनाने:
public ActionResult Edit(int id, CompPhone? cmpPhn)
मैं "त्रुटि 1 प्रकार 'MyProject.Models.CompPhone' होना चाहिए सामान्य प्रकार या विधि 'System.Nullable' में पैरामीटर 'टी' के रूप में इसका उपयोग करने के लिए एक गैर-शून्य मूल्य मान प्रकार।
मैं वैकल्पिक इनपुट विधि में यह इनपुट पैरामीटर कैसे बना सकता हूं?
यहाँ दृश्य मॉडल
public class MyViewModel : IValidatableObject
{
...
public CompPhone CmpPhnF { get; set; }
...
}
कॉलिंग विधि
[HttpPost, ValidateAntiForgeryToken]
public ActionResult PhoneTest(MyViewModel vM)
{
if (ModelState.IsValid)
{ var cmpPhn = vM.CmpPhnF;
return RedirectToAction("Edit", new { id = vM.AcntId, cmpPhn });
}
...
}
धन्यवाद हबीब। मैं rablinz पर आपका जवाब पसंद करता हूं क्योंकि इसे विधि को डुप्लिकेट करने की आवश्यकता नहीं है। और हाँ कॉम्पफोन एक वर्ग है। – Joe
@ जो, रैब्लिंज का उत्तर भी मान्य है, लेकिन यदि आप नेट फ्रेमवर्क 4.0 या उसके बाद का उपयोग कर रहे हैं तो यह सी # 4.0 के साथ आता है जिसमें विधि के लिए डिफ़ॉल्ट पैरामीटर विकल्प होता है। उस संस्करण से पहले, आपको rablinz के उत्तर – Habib
पर अनुकूलित करना होगा मैंने अपने प्रश्न में कॉलिंग विधि जोड़ दी है। आपने उत्तर दिया कि कक्षा को विधि में कैसे लेना है। मेरे पास एक विधि से कक्षा को पारित करने का एक अनुवर्ती प्रश्न है। जब मैं कॉलिंग विधि आईडी को डीबग करता हूं लेकिन सीएमपीएनएन रूट मानों में नहीं जोड़ा जाता है। धन्यवाद – Joe