5

いくつかのデータベース項目の状態をチェックするバックグラウンド スレッドを備えた mvc 3 アプリケーションがあります。期限切れのアイテムが見つかると、電子メールが送信されます。メールには、ステータスを確認するために呼び出すアクションの URL を含めたいと思います。これがコントローラーから行われた場合、UrlHelper を使用します。

string body_url = "For more details see: " + Url.Action("Details", "MyOrder", new { OrderId = order.OrderId }, Constants.HttpProtocol);

ただし、私はコントローラーではなく、コントローラーから呼び出されたメソッドでもありません。アプリケーションの開始時に開始されます。有効な UrlHelper を生成する方法はありますか、そうでない場合は、コントローラーから独立しているときに、ハードコーディングされたパスに頼らずに有効な URL を生成する方法はありますか?

4

1 に答える 1

4

これは理論的なものです...ref msdnなど...バックグラウンドスレッドにいると興味深いものになります:)

var request = new HttpRequest("/", "http://example.com", ""); //hopefully you can hardcode this or pull from config?
var response = new HttpResponse(new StringWriter());
var httpContext = new HttpContext(request, response);

var httpContextBase = new HttpContextWrapper(httpContext);
var routeData = new RouteData();
var requestContext = new RequestContext(httpContextBase, routeData);

var urlHelper = new UrlHelper(requestContext);
var url = urlHelper.Action("ActionName", "ControllerName");
于 2013-02-13T03:43:53.897 に答える