سؤال

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

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

أود أن أدرك الإجراء على كلا من النموذج .Value (الذي تم تمريره عبر المعلمة عبر البريد)، وقيمة myinput. عادة ما كنت أستخدم نموذج عمل، لكنني لا أستطيع في هذه الحالة لأنني لا أفعل إرسال.

فكيف يمكنني تمرير قيمة myinput إلى الفاير هل يجب علي إضافة خاصية باسم myInput إلى نموذجي؟ على افتراض أن ذلك من شأنه أن يعمل، هل هناك طريقة أسهل، أو واحدة على الأقل لا تنطوي على تعديل النموذج؟

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

المحلول

لا توجد طريقة للقيام بذلك في HTML، وبالتالي لا توجد طريقة للقيام بذلك في ASP.NET MVC.

هناك نوعان من الحلول الممكنة لهذا يمكنك الاختيار من بين:

  1. استخدم JavaScript بحيث يؤدي المستخدم إلى تغيير مربع النص الذي تقوم بتغيير قيمة علامة المرساة ديناميكيا لتضمين ما كتبته فيه. لا يمكنك استخدام توجيه ASP.NET لهذا الغرض لأن هذا يعمل على الخادم وتحتاج إلى رمز جانب العميل.

  2. قم بإرسال نموذج بدلا من الرابط. هذه هي الطريقة الموصى بها في HTML. عندما يقوم المستخدم بتقديم البيانات، يجب أن يكون في نموذج. لف كل شيء في علامة النموذج ووضع مربع النص والزر في هناك. قم بتعيين إجراءات النموذج ليكون عنوان URL الذي تريده من النشر إليه.

هذا هو نفس الاستجابة كما وضعت في هذا السؤال, على الرغم من أن أسأل السؤال الآخر قد يكون له فكرة مختلفة قليلا.

نصائح أخرى

لقد قررت أنني ربما كنت قد قرأت قيم مربع النص عبر JavaScript (ربما كنت قد استخدمت JQuery)، وانتقلها كمعلمات كجزء من نوع مجهول (بدلا من استخدام Model.Value) فقط. ومع ذلك، قررت التبديل من استخدام رابط عمل لمجرد تقديم نموذج تقديم واستخدام FormCollection. لقد جعلت أكثر منطقية مع الصفحة التي كنت أبناها.

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