我最近与一位没有C#经验的前端开发人员合作,他将为我正在构建的ASP.NET MVC3应用程序编写视图。
由于大多数Web开发人员都知道Javascript,我认为让他在Javascript中执行服务器端代码剪切而不是在Razor视图中使用C#会很棒。我知道除了输出变量等之外,视图中的代码不多,但是有一些基本的循环等等。
我也非常喜欢在视图中同时使用客户端和服务器端代码的想法。
我想做的是什么?这是Node.js吗? (我根本没看过那个。)
答案 0 :(得分:2)
ASP.NET MVC要求您使用.NET 4.0。因此,您可以使用任何编译为MSIL的CLS兼容语言来构建服务器端。就javascript而言,JScript.NET现在已经过时,目前我还没有其他选择。
就Razor而言,解析器支持的唯一语言是C#和VB.NET。如果您想使用其他语言,则必须为其构建解析器或使用备用视图引擎。
答案 1 :(得分:1)
您可能对此感兴趣:javascript视图引擎。使用某种JS模板引擎
并不需要太多工作答案 2 :(得分:0)
我怀疑一个体面的Javascript程序员在读取编写视图所需的一些C#/ VB.Net时会遇到很多麻烦。
然而,一个可能的JS唯一的替代方案是让你的视图输出JS而且可能是一个基本的HTML布局,然后使用ajax调用控制器动作来获取数据并使用JS动态构建视图的HTML。对我而言,这似乎是一种过于复杂的方式,但如果您的UI开发人员无法掌握一些简单的C#编程技能,那么这可能是一个解决方案。
答案 3 :(得分:0)
我使用过:https://github.com/pauldotknopf/JavaScriptViewEngine并且它仍在更新。
这样,您为Javascript Views(服务器端js - JS ViewEngine)设置了Razor Views(服务器端c# - Razor ViewEngine)的替代方案。您也可以将它用于React和/或Javascript。
我使用它,所以服务器端代码+前端代码是相同的;)
答案 4 :(得分:-1)
您可以在Razor页面上使用javascript和html。你甚至可以将两者结合起来:例如
<script>
$(document).ready(function() {
var note = {
workflow: @Html.Raw(Json.Encode(Model))
};
// do something with note
});
</script>
但如果你打算做的就是Razor可能有点矫枉过正了。 Razor不仅能够做简单的循环,而且不应该是学习的困难。您是否已经为您的朋友构建了视图模型?
当然,一些javascript开发将完全绕过视图模型。相反,ajax调用用于检索模型数据,其状态在客户端维护(例如,主干鼓励这种方法)。