سؤال

لدي عرض حيث يمكنني استخدام اتفاقية التسمية في حقول النص النصي، للإشارة إلى ما يجب القيام به مع المحتوى بمجرد نشره مرة أخرى إلى جهاز التحكم الخاص بي.

الشكل مشابه ل:

<input type="text" name="RegistrationLine#ID" />للحصول على تحديثات

<input type="text" name="CreateRegistrationLine#LineNumber" /> لإنشاء

الآن منذ أن أستخدم هذه الاتفاقية التابعة للتسمية، لا يمكن ربط النموذج العادي. لكنني كنت أقرأ قليلا حول هذا الموضوع ولم أجد قليلا من الإشارة إلى أنه سيكون من الممكن كتابة موثق نموذج مخصص، والتي يجب أن تكون قادرة على مساعدة وتحليل هذه العناصر النموذجية وإنشاء الكائنات بشكل صحيح.

يرجى القراءة: ربط FormValue إلى خاصية اسم مختلف، ASP.NET MVC

هذا مشابه بعض الشيء ما أقوم به إلا، لدي تعقيد إضافي لإلحاق المعلومات بالمعلومات في الاسم الذي أحاول ربطه به.

هل أنا خارج القاعدة هنا؟ وإذا لم يكن الأمر كذلك، هل يمكن لأي منكم أن يسقط بضعة أسطر من التعليمات البرمجية لإظهار كيف ستبدأ هذا النموذج بيندر ..

إذا كان هذا نهجا سيئا للغاية لما أحاول حقا تحقيقه، فأنا أحب أن أسمع اقتراحات لنهج أفضل. لاحظ فقط أن ما أريد أن أكون قادرا على القيام به هو نشر كل من التحديثات ويخلق في إحدى المرء.

هل كانت مفيدة؟

المحلول

يجب أن أتفق مع @ jfar وومار. لا أعتقد أن Binder نموذج مخصص هو المكان الذي تريد أن تكون فيه في هذه الحالة.

يمكنك تمرير نوع معقد إلى وجهة نظرك واستخدام ما عليك سوى استخدام الإيقاف الكامل مثل jfar المذكورة.

id="Model.Person.Name.FirstName" سوف يربط بسعادة كائن اسمه الشخص الذي يحتوي على فئة يسمى الاسم الذي يحتوي على خاصية تسمى FirstName.

الآن إذا كنت ترغب في القيام ببعض الشيكات الخاصة على البيانات، فيمكنك تطبيق فئة جزئية من شأنها القيام بالتحقق من الصحة وما إلى ذلك وملء أخطاء الموديلات.

public partial class Name
{
  public void Validate(){ }
  public int CreateRegistrationLine(){ }
  public bool DoSpecialActions(){ }
}

من غير الواضح قليلا ما تفعله أفعالك الخاصة مثالي أعلاه قد لا يكون ما تريد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top