Javascript中的Html.Partial

时间:2015-04-26 08:52:30

标签: javascript jquery asp.net-mvc razor kendo-ui

我试图在我的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())
)

2 个答案:

答案 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操作将返回部分视图。