PartialViewをHTML文字列にレンダリングして、SignalR ajaxリクエストに戻すことができます。MVC PartialViewをSignalRレスポンスにレンダリングする
のような何か:
SignalRハブ(mySignalHub.cs)
public class mySignalRHub: Hub
{
public string getTableHTML()
{
return PartialView("_MyTablePartialView", GetDataItems()) // *How is it possible to do this*
}
}
レイザーPartialView(_MyTablePartialView.cshtml)
@model IEnumerable<DataItem>
<table>
<tbody>
@foreach (var dataItem in Model)
{
<tr>
<td>@dataItem.Value1</td>
<td>@dataItem.Value2</td>
</tr>
}
</tbody>
</table>
HTML(MySignalRWebPage.html)
<Script>
...
//Get HTML from SignalR function call
var tableHtml = $.connection.mySignalRHub.getTableHTML();
//Inject into div
$('#tableContainer).html(tableHtml);
</Script>
<div id="tableContainer"></div>
私の問題は、PartialViewをコントローラの外でレンダリングできないようです。コントローラの外でPartialViewをレンダリングすることも可能ですか? Razorに付属している素晴らしいHTML生成能力を引き続き活用することは、非常にうれしいことです。
私はこれについてすべて間違っていますか?別の方法がありますか?
も興味を持って...アイデア:
あなたはのようなもので、それを呼ぶのでしょうか?コントローラの外にパーシャルをレンダリングできますか? –
これは簡単な方法ではありません。 ksonのデータを返してから、すでにページに入っているクライアント側のtempateを調整する方が良いでしょう。次に、tempateはパーシャルビューでレンダリングできます –