ASP.net Razor MVC5在我的cshtml页面{j}中插入@ {}

时间:2017-03-14 18:04:29

标签: javascript c# asp.net asp.net-mvc razor

razor的新内容所以这是我的问题。

我想在我的JavaScript创建按钮中添加一些动态代码:

$('<button ' +
    '"class="btn btn-default btn-outline" ' +
    'id="addEvent" ' +
    'style="top: -20px; position: relative;" ' +
    'data-tooltips="' + @Html.Raw(new ETTData.Models.Held.tips()._tips["RequestID"]) + '">' +
    'Add New Event' +
 '</button>').insertBefore('#theDT_paginate .pagination');

如上所示,数据工具提示是我尝试插入 razor 代码的区域。

虽然似乎没有奏效。它只是显示如下:

$('<button ' +
    '"class="tips btn btn-default btn-outline" ' +
    'id="addEvent" ' +
    'style="top: -20px; position: relative;" ' +
    'data-tooltips="' + example 1 + '">' +
    'Add New Event' +
  '</button>').insertBefore('#theDT_paginate .pagination');

并给出错误:

  

预期&#39;)&#39;

我已经尝试过我发现HERE的示例,但这似乎不起作用?

1 个答案:

答案 0 :(得分:2)

由于您将C#/ Razor代码嵌入到javascript中,因此您不需要在该部分使用concat,因为JS并不知道差异。尝试

'data-tooltips="@Html.Raw(new ETTData.Models.Held.tips()._tips["RequestID"])">' +

哪个应该导致:

'data-tooltips="example 1' +

那就是说,你的@ Html.Raw输出是&#34;示例1&#34;。你真的想要那个空间吗?

除非&#34; example1&#34;是先前定义的JS变量,然后你确实想要concat,但是你想要摆脱那个空间。