没有Razor编码的MvcHtmlString - javascript

我正在编写一种生成javascript代码并发送razor视图的方法。
但是剃刀视图根据其头部对其进行编码。代码如下。

这是我的方法主体,返回一个mvchtmlstring:

StringBuilder scriptHtml = new StringBuilder();
        scriptHtml.Append("<script>");
        scriptHtml.Append(@"var {0} = {{
                    id: 'someText',
                    title: '{1}',

                 $(document).ready(function () {{
                       $.function({0});
                   }});");

        scriptHtml.Append("</script>");
var output = string.Format(scriptHtml.ToString(), this.Id, this.Title);
return MvcHtmlString.Create(output);

所以现在,它的输出是:

@&lt;script&gt;var tlyPageGuide,,&quot;direction&quot;:&quot;Right&quot;

像这样的东西随着编码而增长。

那就是我想要的是Razor在创建cshtml时不应该更改我的代码,而我必须获得带有渲染的纯JavaScript代码。

注意:我不想使用Html.Raw()作为解决方案,我想在服务器端使用它。

参考方案

您是否考虑过使用局部视图?

例如:(此代码可能包含错误,但您可以理解):

class MyScriptModel
{
  public string Id {get;set;}
  public string Title {get;set;}
}

//your partial view: my_partial.cshtml
@model MyScriptModel
//extracted from your string builder
<script>
        var @Model.Id = {{
                    id: 'someText',
                    title: '@Model.Title',

                 $(document).ready(function () {{
                       $.function(@Model.Id);
                   }});

</script>

//instantiate the model
var model = new MyScriptModel {Id="someid", Title="some title"};

//using your partial view
@Html.Partial("my_partial", model)

ddl在服务器中未更新-asp.net - javascript

我在ASP.NET c#上工作。我有一个DropDownList。 (runat =“ server”)在$ {document).ready上,我更新了它的值:$(document).ready(function () { document.getElementById("ddl").value = "abc"; ……

ASP.NET-如何更改JSON序列化的方式? - javascript

我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

如何添加按钮并重定向到MVC4中的另一个视图? - javascript

我有一个疑问。我有一个称为CustomerMaster的视图。在CustomerMaster视图中,我有一个字段,例如'Area','City'等。如果城市已经在列表中,它将自动显示在Dropdown中。假设我需要的城市不在列表中,这意味着我必须添加该城市。因此,我决定在“城市”字段附近保留一个“添加”按钮。如果单击该按钮,则需要重定向到该视图。那么我该如何…

ASP.NET MVC中应为DataTable返回哪种数据? - javascript

我想为DataTable中的每个页面创建动态加载信息。我正在尝试遵循以下示例:https://www.datatables.net/manual/server-sidehttps://www.datatables.net/manual/data来自示例的代码:$('#example').DataTable( { serverSide: t…