繁体   English   中英

我可以使用服务器端Javascript在Razor中对视图进行编码吗?

[英]Can I use server-side Javascript to code views in Razor?

我最近与一个没有C#经验的前端开发人员建立了合作关系,他将为我正在构建的ASP.NET MVC3应用程序编码视图。

由于大多数Web开发人员都知道Javascript,所以我认为让他在Javascript中而不是在Razor视图中使用C#进行服务器端代码剪裁真是太棒了。 我知道视图中除了输出变量等之外没有太多代码,但是有一些基本的循环等。

我也非常喜欢在视图中同时具有客户端和服务器端代码是同一语言的想法。

我想做的事可能吗? 这是Node.js吗? (我根本没有看过。)

ASP.NET MVC要求您使用.NET 4.0。 因此,您可以使用编译为MSIL的任何CLS兼容语言来构建服务器端。 就javascript而言, JScript.NET现在已经过时了,目前我还没有其他选择。

就Razor而言,解析器仅支持C#和VB.NET语言。 如果要使用其他语言,则必须为其构建解析器或使用其他视图引擎。

您可能对此感兴趣:javascript视图引擎。 使它与某种JS模板引擎一起工作不需要太多工作

https://github.com/mcintyre321/JsViewEngine

我已经使用过: https : //github.com/pauldotknopf/JavaScriptViewEngine ,它仍然在更新。

这样,您就可以为Razor视图(服务器端c#-Razor ViewEngine)和Javascript视图(服务器端js-JS ViewEngine)设置替代方案。 您也可以将其用于React和/或Javascript。

我使用了它,因此服务器端代码+前端代码是相同的;)

我怀疑一个体面的Javascript程序员是否会在编写视图时需要很多C#/ VB.Net方面遇到麻烦。

但是,一种可能的仅使用JS的替代方法是仅使视图输出JS,并且可能具有基本的HTML布局,然后使用ajax调用控制器动作来获取数据并仅使用JS即时为视图构建HTML。 在我看来,这似乎是一种过于复杂的方法,但是如果您的UI开发人员无法掌握一些简单的C#编程技能,那么这可能是一个解决方案。

您可以在Razor页面上使用javascript和html。 您甚至可以将两者结合起来:

<script>
     $(document).ready(function() {
       var note = {
          workflow: @Html.Raw(Json.Encode(Model))
       };
       // do something with note
    });
</script>

但是,如果您打算这样做,Razor可能会大材小用。 Razor不仅能够执行简单的循环,而且学习起来也不难。 您已经为您的朋友建立视图模型了吗?

当然,一些javascript开发将完全绕过视图模型。 取而代之的是,使用ajax调用来检索模型数据,并在客户端维护其状态(例如,骨干网鼓励这种方法)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM