Javascript中的Html.Partial
我试图在javascript代码中呈现部分视图。部分视图本身也包含JS代码,它是一个剑道窗口 这是我的代码,建议进行以下更改: 但此代码在我的页面中呈现字符串:Javascript中的Html.Partial,javascript,jquery,asp.net-mvc,razor,kendo-ui,Javascript,Jquery,Asp.net Mvc,Razor,Kendo Ui,我试图在javascript代码中呈现部分视图。部分视图本身也包含JS代码,它是一个剑道窗口 这是我的代码,建议进行以下更改: 但此代码在我的页面中呈现字符串: jQuery(function(){jQuery(#7067ea1a-0425-44a6-99d3-aefb37f088ed”).kendoWindow({“model”:false,“iframe”:false,“draggable”:true,“scrollable”:true,“pinted”:false,“title”:null
jQuery(function(){jQuery(#7067ea1a-0425-44a6-99d3-aefb37f088ed”).kendoWindow({“model”:false,“iframe”:false,“draggable”:true,“scrollable”:true,“pinted”:false,“title”:null,“resizable”:true,“content”:null,“actions”:[“Close”,“Minimize”,“Refresh”];})代码>
最后,这是我的部分观点:
@{
var winId = Guid.NewGuid().ToString();
}
@(Html.Kendo().Window()
.Name(winId)
.Draggable()
.Resizable()
.Actions(actions => actions.Close().Minimize().Refresh())
)
问题是MVC阻止您将原始HTML注入响应流
您可以通过引入@Html.Raw()来修改代码,告诉MVC您希望它注入原始Html
例
好吧,这行很好用:
$('.body-content').load('/Home/win?window='.concat(text));
而win
操作将返回部分视图。将ToString()替换为ToHtmlString()。我以前尝试过,结果是一样的。感谢Chintana,现在我得到了预期的“;”代码>错误。这是win:var-win=“jQuery(function(){jQuery(#f7be8297-92a2-4aef-936b-4b531de497b4”)。kendoWindow({“model”:false,“iframe”:false,“draggable”:true,“scrollable”:true,“pinted”:false,“title”:null,“resizable”:true,“content”:null,“actions”:[“Close”,“Minimize”,“Refresh”]});”代码>这是我的当前行:var win=“@Html.Raw(@Html.Partial(“_GenericWindow”).ToHtmlString().Replace(Environment.NewLine)”代码>此外,如果您能指导我获取窗口的句柄,我将非常感激。这可能是由于服务器端代码出错所致。您可以通过用一条简单的html消息替换_GenericWindow中的所有代码来测试这一点,并查看Renders在这种情况下是否需要使用ajax来调用局部视图
var win = "@Html.Raw(@Html.Partial("_GenericWindow").ToString().Replace(Environment.NewLine, "").Replace(" ", ""))";
$(".body-content").append(win);
$('.body-content').load('/Home/win?window='.concat(text));