سؤال

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

وسلسلة استعلام مواقع المعلومات بسهولة ويسر. ولكن هناك لا يبدو أن يكون وسيلة للحصول على شكل مواد خام POST'ed البيانات دون استخدام BinaryRead، وإذا فعلت ذلك، ثم أنا المسمار نفسي للخروج من استخدام مجموعة Request.Form في وقت لاحق.

لا أحد يعرف طريقة للالتفاف حول هذا؟

وتحرير: tvanfosson اقترح Request.Params. كنت أبحث عن شيء ما كان أسهل للاستخدام (مثل Request.Querystring، فقط لPOST)، ولكن اعتقد انني يمكن بسهولة مثلما حلقة من خلال جميع بارامس وبناء سلسلة من اسم = قيمة و، الخ).

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

المحلول

وكافة البيانات الشكل الذي ينبغي أن يكون في .Params . كنت بحاجة للقيام بذلك في كل صفحة، على الرغم أو ربما استخدام HttpModule.

[تحرير] إذا كنت ترغب في الحصول على المعلمات شكل منفصل تستخدم <لأ href = "http://msdn.microsoft.com/en-us/library/system.web.httprequest.form.aspx" يختلط = " نوفولو noreferrer "> Request.Form ، جنبا إلى جنب مع Request.QueryString

نصائح أخرى

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

ووتطبيق نموذج ستكون كما يلي:

public class CustomModule : IHttpModule 
{
    public void Init(HttpApplication context)
    {
        context.EndRequest += new EventHandler(context_BeginRequest);
    }

    private void context_BeginRequest(object sender, EventArgs e)
    {
        HttpContext context = ((HttpApplication)sender).Context;
        // you can use the context.Request here to send it to the database or a log file
    }
}

وتحتاج إلى إضافة وحدة إلى الملف web.config الخاص بك

<httpModules>
    <add name="CustomModule" type="CustomModule"/>
</httpModules>

وأوصي تنفيذ وHttpHandler أو HttpModule لهذا النوع من السيناريو. يمكنك الحصول على البيانات POST من الحدث Page_Load لكن تنفيذ هذا المرفق تسجيل هنا ليست للصيانة كما.

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