لماذا هو نموذج ASP.NET الخاص بي الذي يصل فارغا عند النشر من الصفحة إلى الصفحة؟

StackOverflow https://stackoverflow.com/questions/2433624

  •  19-09-2019
  •  | 
  •  

سؤال

لدي رمز HTML التالي

<%@ Page Language="C#" %>

<html>
    <head>
        <title></title>
    </head>
    <body>
        <form id="frmSystem" method="post" action="target.aspx">
            <input id="txtTextField" type="text" />
            <input id="btnPost" value="Submit" onclick="javascript:frmSystem.submit();" type="button" />
        </form>
    </body>
</html>

تأتي الصفحة المستهدفة ولكن النموذج الذي يتلقى فارغا. لدي نقطة انقطاع في صفحة ADARD.aspx الخاص بي وبينما أستطيع أن أرى نموذجا، فهو مفاتيح فارغة وطلب ["txttextfield"] لا يعطيني شيئا.

أي فكرة لماذا؟

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

المحلول

إذا كنت تستخدم ASP.NET MVC، يجب تعيين أسماء المدخلات مع سمة "الاسم" بدلا من "المعرف".

نصائح أخرى

إذا كنت تستخدم ASP.NET 4.5 مثلي، استخدم أدناه تلميحات

  • تعطيل عناوين URL ودية السيارات في مشروع نموذج الويب
    • settings.autoredirectmode = redirectmode.off؛ // في Routeconfig.cs.
  • لو استطعت:
    • إزالة الإجراء = "cilandingpage.aspx" من عنصر النموذج
    • ضع ASP: زر بدلا من الزر العادي
    • تعيين postbackurl.= "~ / cilandingpage.aspx" على ASP: زر

المزيد من الموارد مع مزيد من التفاصيل التي كانت مفيدة بالنسبة لي

ربما تقوم بإعادة تعيين قيمة النموذج في معالجات الأحداث (مثل Page_load).

خيار آخر هو التقاط طلبك. البيانات [] البيانات في Application_BeGinRequest على Global.asax.cs:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    //capture form data and preserve in query string
    if (Request.Form["txtTextField"]!= null)
    {
        Response.Redirect(Request.RawUrl + "?txtTextField=" 
          + Request.Form["txtTextField"]);
    }
    //or preserve in Session variable
    if(Request.Form["txtTextField"]!=null)
    {
        Session["txtTextField"]=Request.Form["txtTextField"];
    }
}

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

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