C# 以字符串形式返回部分视图
我正在尝试减少向服务器发出的get请求的数量。我想将部分视图作为字符串返回给我的C# 以字符串形式返回部分视图,c#,javascript,jquery,C#,Javascript,Jquery,我正在尝试减少向服务器发出的get请求的数量。我想将部分视图作为字符串返回给我的$。get方法,这样我就可以一次返回其中的3个,而不是3个单独的服务器回调。无论如何都有办法做到这一点。到目前为止我有 到目前为止,它只返回System.Web.Mvc.PartialViewResult function updateChat() { /** I want to make this work so I only have 1 callback */ $.get("Home/refreshChatP
$。get
方法,这样我就可以一次返回其中的3个,而不是3个单独的服务器回调。无论如何都有办法做到这一点。到目前为止我有
到目前为止,它只返回System.Web.Mvc.PartialViewResult
function updateChat() {
/** I want to make this work so I only have 1 callback */
$.get("Home/refreshChatParts", {}, function (response) {
var html = response.split(",");
$("#chatWindow").replaceWith(html[0]);
$("#chatHeader").replaceWith(html[1]);
$("#playerList").replaceWith(html[2]);
});
/** this stuff works, but is a lot of call backs */
$.get("Home/refreshChatText", {}, function (html) {
$("#chatWindow").replaceWith(html);
});
$.get("Home/refreshChatHeader", {}, function (html) {
$("#chatHeader").replaceWith(html);
});
$.get("Home/refreshPlayerList", {}, function (html) {
$("#playerList").replaceWith(html);
});
*/
$.get("Home/getRequest", {}, function (requestUser) {
if (requestUser.toString() != "failed") {
pause = true;
var join = confirm(requestUser + " would like to play a game with you");
if (join) {
startGame(requestUser);
} else
pause = false;
resetRequestUser(requestUser);
}
});
//$.get("Home/checkForGameStart", {}, function (response) { /*alert(response);*/ });
scrollChatDown();
setTimeout('updateChat()', 20000);
}
public String refreshChatParts() {
//refresh chat text
ViewData["ChatText"] = getFormatedChatText();
//refresh usercount
try {
userCount = getUserCount();
ViewData["numberOfUsers"] = "There are " + userCount + " players online";
} catch (Exception e) { ViewData["numberOfUsers"] = e.Message; }
//refresh player list
ViewData["listOfPlayers"] = getFormatedPlayerList();
checkForGameStart();
return PartialView("ChatText") + "," + PartialView("ChatHeader") + "," + PartialView("playerList");
}
方法“PartialView”返回类型“System.Web.Mvc.PartialViewResult”,因此当您尝试连接该方法的返回结果时,它将调用对象的字符串,如果不重写该字符串,它只返回类型名称
因此,出于这个原因,这种方法将不起作用。您要做的是将您的操作返回类型标记为PartialViewResult
然后定义一个局部视图,它只写出您想要返回的三个局部视图
如果定义新的分部,如下所示:
@{ Html.RenderPartial("ChatText"); } ,
@{ Html.RenderPartial("ChatHeader"); } ,
@{ Html.RenderPartial("playerList"); }
然后退回那部分,你应该得到你想要的。对,我很害怕。为此,我必须重写我的html。有一个是第四部分的观点,我不想不断更新。谢谢你的回答