简体   繁体   English

HTML.Partial in Javascript

[英]Html.Partial in Javascript

I'm trying to render a partial view within my javascript code. 我正在尝试在我的JavaScript代码中呈现部分视图。 The partial view itself contains JS codes as well, it's a kendo window. 部分视图本身也包含JS代码,这是一个剑道窗口。

This is my code, with changes suggested in this post : 这是我的代码,在此建议的修改

var win = "@Html.Partial("_GenericWindow").ToString().Replace(Environment.NewLine, "").Replace(" ", "")";

$(".body-content").append(win);

But this code renders string in my page: 但是此代码在我的页面中呈现了字符串:

<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>

And finally, this is my partial view: 最后,这是我的部分观点:

@{
    var winId = Guid.NewGuid().ToString();
}

@(Html.Kendo().Window()
    .Name(winId)
    .Draggable()
    .Resizable()
    .Actions(actions => actions.Close().Minimize().Refresh())
)

The issue is MVC is preventing you from injecting raw HTML to the response stream. 问题是MVC阻止您将原始HTML注入响应流。

You can modify your code by introducing @Html.Raw() to tell MVC that you want it to inject the raw HTML 您可以通过引入@ Html.Raw()来告诉MVC您希望其注入原始HTML来修改代码

ex.. 恩..

var win = "@Html.Raw(@Html.Partial("_GenericWindow").ToString().Replace(Environment.NewLine, "").Replace(" ", ""))";

$(".body-content").append(win);

Well, this line works fine: 好吧,这行工作正常:

$('.body-content').load('/Home/win?window='.concat(text));

And the win action will return the partial view. 并且win操作将返回部分视图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM