【问题标题】:html conditional compilation is turned off in MVC C#html条件编译在MVC C#中被关闭
【发布时间】:2013-04-03 07:16:21
【问题描述】:

这个函数是我写的

 <script type="text/javascript">
    function saveDelivery() {
       alert("tttt")
       var model = @Html.Raw(Json.Encode(Model)); //errror
       $.ajax({

           type: 'POST',

           url: '@Url.Action("SaveDelivery", "Business")',
           contentType: 'application/json; charset=utf-8',
           data: JSON.serialize(model),
           success: function (result) {                                  
           },
           error: function (xhr, ajaxOptions, thrownError) {
               alert(xhr.status);
               alert(thrownError);
          }
      });

  }    

但是有错误

var model = @Html.Raw(Json.Encode(Model));

上面写着conditional compilation is turned off 如何解决这个问题?

【问题讨论】:

  • 试试这个可能会起作用 var model = "@Html.Raw(Json.Encode(Model))";

标签: c# javascript asp.net-mvc


【解决方案1】:

您可以使用 Html 扩展来输出脚本标签。这也有助于解决 Visual Studio 中的智能感知问题。

public static class Extensions
{
    public static IHtmlString BeginScript(this HtmlHelper htmlHelper)
    {
       return new HtmlString("<script type=\"text/javascript\">");
    }

    public static IHtmlString EndScript(this HtmlHelper htmlHelper)
    {
        return new HtmlString("</script>");
    }
}

然后在你看来:

@Html.BeginScript()

// JavaScript...

var model = @Html.Raw(Json.Encode(Model));

// More JavaScript...

@Html.EndScript()

注意:您需要将扩展​​类的命名空间添加到 web.config 中的 &lt;system.web.webPages.razor&gt; 元素(视图文件夹中的那个)

【讨论】:

  • +1:这似乎是一个非常愚蠢的 hack,只是为了绕过工作室的智能感知,但它绝对可以解决问题。
  • @Demodave 我添加了一些额外的信息。您需要将方法放在静态类中并将命名空间添加到 web.config。
  • @LeeGunn,知道了。谢谢
【解决方案2】:

有两种选择:

  1. 别在意,你确定你的代码(这是警告)
  2. 执行如下操作:var model = '@Html.Raw(Json.Encode(Model))',但可能您必须将其更改为:var model = JSON.parse('@Html.Raw(Json.Encode(Model))')

【讨论】:

    【解决方案3】:

    mvc 4 assembly reference missing for Json.Encode

    首先添加 system.web.helper 引用
    然后右键单击此 refrence 属性并将 Copy Local=false 更改为 true 并使用 json.Encode 运行您的代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多