0
我有一個自定義的IHttpHandler,即時通訊使用在MVC3中調用我的控制器。問題是,當我調用View(「〜/ path/to/my/view.cshtml」)時,我什麼都沒有。沒有錯誤。沒什麼,只是空的來源和200好。使用IHttpHandler從控制器調用的視圖什麼都不返回
由於即時調用這個我的自我有沒有開始的視圖生命週期的一部分?
的IHttpHandler:從控制器
public class MyHttpHandler : IHttpHandler
{
ISimpleController _c;
public SimpleHttpHandler(Controller c)
{
_c = c;
}
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
_c.Get();
}
代碼:
public new ActionResult Get()
{
ViewBag.Proof = "Ping";
ViewBag.Of = "Pong";
ViewBag.Life = "Fizz";
return View("~/Views/Shared/WhatAView.cshtml");
}
WhatAView.cshtml:
<ul>
@foreach(var pair in ViewData)
{
<li>@pair.Key : @pair.Value</li>
}
</ul>
所以我應該叫ViewContext在MyHttpHandler.ProcessRequest?然後我仍然在Controller中調用View()。我認爲View()的結果然後在ActionResult中,並且可以被ViewContext() – QueueHammer 2012-07-24 17:26:48
@QueueHammer使用我發現我最初提出的實現已經存在於ViewResult.ExecuteResult()中。請閱讀我更新的答案。順便說一句,你說得對,需要使用ActionResult,ViewContext構造函數的3d參數應該是(ViewResult)ActionResult.ViewData。 – 2012-07-24 22:50:30