我试图在我的javascript代码中渲染部分视图。部分视图本身也包含JS代码,它是一个剑道窗口。
这是我的代码,此post中建议进行更改:
var win = "@Html.Partial("_GenericWindow").ToString().Replace(Environment.NewLine, "").Replace(" ", "")";
$(".body-content").append(win);
但是这段代码在我的页面中呈现字符串:
<divid="7067ea1a-0425-44a6-99d3-aefb37f088ed"></div><script> jQuery(function(){jQuery("#7067ea1a-0425-44a6-99d3-aefb37f088ed").kendoWindow({"modal":false,"iframe":false,"draggable":true,"scrollable":true,"pinned":false,"title":null,"resizable":true,"content":null,"actions":["Close","Minimize","Refresh"]});});</script>
最后,这是我的部分观点:
@{
var winId = Guid.NewGuid().ToString();
}
@(Html.Kendo().Window()
.Name(winId)
.Draggable()
.Resizable()
.Actions(actions => actions.Close().Minimize().Refresh())
)
答案 0 :(得分:2)
问题是MVC阻止您将原始HTML注入响应流。
您可以通过引入@ Html.Raw()来告诉MVC您希望它注入原始HTML
来修改您的代码离..
var win = "@Html.Raw(@Html.Partial("_GenericWindow").ToString().Replace(Environment.NewLine, "").Replace(" ", ""))";
$(".body-content").append(win);
答案 1 :(得分:0)
嗯,这条线很好用:
$('.body-content').load('/Home/win?window='.concat(text));
win
操作将返回部分视图。