gpt4 book ai didi

javascript - ASP.NET MVC 5 - @C# 代码在运行时未翻译

转载 作者:行者123 更新时间:2023-11-28 18:05:45 25 4
gpt4 key购买 nike

所以我尝试动态地将一些数据传递给 JavaScript 函数来为用户更新一些 UI。

 @Html.CheckBox("Sun1D", new { onclick = "addRemEvent(1, 'D', 
@((List<DateTime>)ViewBag.dates).ElementAt(0) , '#Sun1D');"
, htmlAttributes = new { @class = "form-control" } })

但是在运行时,代码似乎没有被翻译,我最终得到了

<input htmlAttributes="{ class = form-control }" 
id="Sun1D"
name="Sun1D"
onclick="addRemEvent(1, &#39;D&#39;,
@((List&lt;DateTime>)ViewBag.dates).ElementAt(0) ,
&#39;#Sun1D&#39;);"
type="checkbox" value="true" />

现在您可以在这里看到问题了。该 javascript 函数调用中应该有一个日期值,但我只是将 C# 代码作为文字获取。

最佳答案

您将服务器端代码作为字符串发送到客户端。它不会执行该字符串,只是将其发送到客户端。

为了简化,而不是这样的:

new { onclick="some text @someCode more text" }

你想要这个:

new { onclick="some text " + someCode + " more text" }

在你的中可能看起来像这样:

new { onclick = "addRemEvent(1, 'D', " + ((List<DateTime>)ViewBag.dates).ElementAt(0) + " , '#Sun1D');" }

事实上,它是 Razor 语法,没有什么特别的,代码仍然是代码。您正在编写 C# 代码来构建一个字符串,以放入对象的 onclick 属性中。您可以像在 C# 中构建任何其他字符串一样构建该字符串。 (这意味着如果您愿意,您还可以使用 string.Format() 等。)

关于javascript - ASP.NET MVC 5 - @C# 代码在运行时未翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42679961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com