我們有以下情況: ContactController:ApiController如何從WebAPIContrib實現RazorViewEngine?
現在ContactController返回Contact模型。
我們希望控制器通過使用Web應用程序的相應視圖將結果作爲剃刀視圖傳遞。
我發現這個link
這是達雷爾 - 米勒有API控制器一ViewEngineFormatter。但我不知道如何指定哪個.cshtml視圖用於返回的模型。我在ViewEngineFormatter的WriteToStreamAsync方法中有一個斷點。它到達那裏,並拋出一個錯誤,說它不能將對象轉換爲視圖。
在此處,它拋出一個錯誤:
public override Task WriteToStreamAsync(Type type, object value, Stream stream, System.Net.Http.HttpContent content, TransportContext transportContext)
{
var view = (View)value;
view.WriteToStream(stream, _viewEngine);
var tcs = new TaskCompletionSource<Stream>();
tcs.SetResult(stream);
return tcs.Task;
}
我只是缺少如何獲得apicontroller即可返回剃刀視圖,如果客戶機請求中指定的數據類型是「HTML」。
任何幫助,將不勝感激......
有什麼辦法可以預編譯剃刀視圖,以便我們不必執行FileIO操作來呈現數據? – safriss