c# - 如何在 .js 文件中嵌入 Razor C# 代码?

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

必须嵌入 javascript 代码块

<script type='text/javascript'>
  ...
</script>

但 Razor 代码不会在 .js 文件中编译,包含在 .cshtml 文件中。

如何实现?或者是否有任何其他优雅的方式来产生类似的效果?

谢谢。

最佳答案

当我遇到这个问题时,有时我会在 .js 文件中提供一个可以在 .cshtml 文件中访问的函数...

// someFile.js
var myFunction = function(options){
    // do stuff with options
};

// razorFile.cshtml
<script>
    window.myFunction = new myFunction(@model.Stuff);
    // If you need a whole model serialized then use...
    window.myFunction = new myFunction(@Html.Raw(Json.Encode(model)));
</script>

不一定是最好的选择,但如果你必须这样做,它会做...

您可以尝试的另一件事是在您的 html 元素上使用数据属性,例如 jQuery.validate.unobtrusive 的做法...

//someFile.js
var options = $("#stuff").data('stuff');

// razorFile.cshtml
<input type="hidden" id="stuff" data-stuff="@model.Stuff" />

关于c# - 如何在 .js 文件中嵌入 Razor C# 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9406648/

相关文章:

c# - 以编程方式设置浏览器 cookie (Firefox)

javascript - 为什么长度为 1 的数组在 JavaScript 中表现得像标量?

ajax - MVC3 ASP.NET Ajax BeginForm 在被其他 Ajax 注入(inject)时有时不起作用

c# - Controller 在 mvc 4 中不工作

jquery - 将 asp mvc3 不引人注目的验证与 jquery 验证插件混合

c# - 使用 ASP.NET WebAPI 返回 bool 值以供 Ajax GET 请求使用

c# - Visual Studio 函数未按顺序完成操作

c# - ASP.NET MVC 4 中使用 aspnet 身份进行基于角色的身份验证

javascript - 为什么我不能在替换函数中使用 .call()?

javascript - ANDROID WebView javascript 重定向不起作用