ASP.NET MVC - تحكم طريقة عمل من تطبيق وحدة التحكم

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

  •  06-07-2019
  •  | 
  •  

سؤال

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

وشبة الكود:

ComponentBaseController controller = new ComponentBaseController();
SaveToFile("output.html", controller.Result);

وأنا لا تستخدم شفرة الحقيقي هنا منذ لقد حاولت مناهج مختلفة، ولكن لا شيء يحصل لي قريب.

والأقرب حصلت على استخدام <لأ href = "http://stephenwalther.com/blog/archive/2008/07/26/asp-net-mvc-tip-25-unit-test-your-views-without -a على شبكة الانترنت على server.aspx "يختلط =" نوفولو noreferrer "> نصيحة رقم 25 من ستيفن فالتر ، هو هذا:

ComponentBaseController controller = new ComponentBaseController();

RouteData routeData = new RouteData();
routeData.Values.Add("controller", "ComponentBase");

var fakeContext = new FakeControllerContext(controller, routeData);

var result = controller.Details("klasta7") as PartialViewResult;
result.ExecuteResult(fakeContext);
Console.Write(fakeContext.HttpContext.Response.ToString());

وهذا يطرح System.InvalidOperationException التي لا يمكن العثور على نظرة جزئية. حاول مواقع مختلفة للالمشاهدات مجلد، ولكن لم الحظ.

وأي أفكار؟ شكرا!

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

المحلول

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

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

نصائح أخرى

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

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

وأخيرا، وهذا يبدو وFUBAR قليلا. ما هو الهدف من هذه العملية؟

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