سؤال

لدي نموذج بحث في كل صفحة، وبالتالي وضعت عليه في الصفحة الرئيسية. بعد إضافة runat=server إلى ذلك النموذج، أنا الآن غير قادر على استخدام النماذج الأخرى التي يقوم بخادم RunAT؛)

كيف يتحول الناس عادة حول هذا؟

فكرة واحدة هي أن تحيط بالصفحة بأكملها مع نموذج واحد runat=server ولكن بعد ذلك، يجب أن يكون لدي رمز في الصفحة الرئيسية حتى بالنسبة لتلك النماذج المستخدمة في صفحة فرعية واحدة فقط (مثل جهة الاتصال على سبيل المثال).

كيف يتحول الناس عادة حول هذا؟

thnx.

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

المحلول

كثيرا ما يعتبر هذا أحد قرارات التصميم الأكثر ملاءمة على ASP.NET. إنه أمر محزن أنك تم إصلاحه إلى هذا المبدأ الواحد لكل صفحة.

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

الطريقة الأسهل و "القياسية" للتغلب على هذا باستخدام لوحة ASP: تعيين خاصية DefaultButton. هذا يجب أن يلتف حول الجزء الذي يتضمن كل من حقول البحث وزر البحث.

لا تقلق بشأن ترميز <form> من داخل masterpage، تحيط بالصفحة بأكملها. هذا تصميم مشترك. تتطلب معظم عناصر التحكم في الخادم نموذجا، فلماذا لا تشمل الأمر ببساطة بغض النظر: من المفترض أن يكون هناك.

نصائح أخرى

أود أن أقترح عليك البحث في نموذج HTML W / O RunAT = Server على الصفحة الرئيسية، مثل

<form action="Search.aspx" method="get">
  <input type="text" name="q" /><input type="submit" />
</form>

استخدم الطريقة = الحصول على إمكانية تأخذ عنوان URL للبحث. ثم افعل ما تحتاجه مع الاستعلام في CodeBehind من Search.aspx:

public void Page_Load(object sender)
{
  string q = Context.Request.QueryString["q"];
  /*...*/
}

السؤال الأول هو، لماذا تريد الحصول على نماذج RUNAT = "Server" متعددة؟

لا يزال بإمكانك الحصول على أشكال بدون runat="server" على الصفحة، أو استخدام PostBackUrl الممتلكات في Button عناصر التحكم، للنشر إلى صفحات ASP.NET مختلفة.

لجمع البيانات في عملية متعددة الخطوات، يمكنك إما أن تنظر إلى عنصر تحكم معالج ASP.NET، راجع Scott Guthrie بلوق وظيفة هنا.

بدلا من ذلك، يمكنك إدارة كل نفسك واستخدام لوحات ASP.NET، أو استخدم المذكورة بالفعل PostBackUrl للتنقل من صفحة ASP.NET إلى صفحة مختلفة.

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