2012-01-10 53 views
3

我最近与一位没有C#经验的前端开发人员合作,他将编写我正在构建的ASP.NET MVC3应用程序的视图。我可以使用服务器端JavaScript来在Razor中编码视图吗?

由于大多数Web开发人员了解Javascript,我认为这将是真棒有他做服务器端代码的Javascript,而不是C#剪剃刀视图中。我知道有没有超出输出变量等意见多的代码,但是有一些基本的循环等

我也很喜欢同时具有客户端和服务器端代码中的意见的想法是同一种语言。

是我想做的可能吗?这是一个Node.js的东西? (我没有看过。)

回答

2

ASP.NET MVC要求你使用.NET 4.0。因此,您可以使用任何编译为MSIL的CLS兼容语言来构建服务器端。就javascript而言,好吧,JScript.NET现在已经过时,目前我还没有意识到替代方法。

至于剃刀而言,唯一的语言解析器支持是C#和VB.NET。如果您想使用其他语言,则必须为其构建解析器或使用其他视图引擎。

+0

剃刀具有用于非C#语言支持吗?我想使用js编码视图,而不是控制器。 – 2012-01-10 12:42:54

+0

@DavidPfeffer,就视图而言Razor只支持C#和VB.NET。解析器仅支持这两种语言。我认为你应该寻找一个替代的视图引擎。但说实话,如果你使用C#编写你的服务器端代码,如果你决定使用Razor作为视图引擎,那么不使用C#就会很奇怪。 – 2012-01-10 12:44:19

+1

目标是让不熟悉C#的视图开发人员感到舒适。使用js和HTML体验的人比C#和HTML体验容易得多。 – 2012-01-10 12:49:05

0

我怀疑一个体面的Javascript程序员会捡起C#/ VB.Net编写视图所需的一点点麻烦。

但是,一个可能的JS唯一替代方案是让您的视图仅输出JS,也许是基本的HTML布局,然后使用ajax调用控制器操作来获取数据并仅使用JS为视图构建HTML视图。对我来说,这似乎是一个过度复杂的方式来做到这一点,但如果你的UI开发人员不能掌握一些简单的C#编程技能,那么这可能是一个解决方案。

-1

您可以使用JavaScript和HTML剃刀页面上。您甚至可以将两者结合起来:例如

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

但是如果这就是你打算做的一切,剃刀可能是矫枉过正。剃刀不仅能够做简单的循环,而且不应该是学习的困难。你是否已经为你的朋友构建了视图模型?

当然,一些JavaScript开发将完全绕过视图模型。相反,ajax调用用于检索模型数据,并且其状态在客户端保持不变(例如,骨干网鼓励此方法)。

+0

这甚至不能远程回答js是否可以用作Razor页面的服务器端语言的问题。 – 2012-08-18 12:12:03

+0

剃刀不是语言,它是一个视图引擎。 – 2012-08-18 12:12:49

+0

剃刀是一个视图引擎:你是对的。提问者提到开发者希望在Razor视图中使用JavaScript进行服务器端代码剪辑。这段代码是一个例子(在一个实际的项目上)我们如何做到这一点。你仍然需要知道一点剃刀,但是你可以将两者结合起来(在某种程度上)。我认为这值得指出。 – Daniel 2012-08-22 00:40:30

0

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

这样,你设置的剃刀视图替代(服务器端C# - 剃刀视图引擎)Javascript的意见(服务器端JS - JS视图引擎)。您也可以将它用于React和/或Javascript。

我用它这样的服务器端代码+前端代码是相同的;)

相关问题