2012-01-10 74 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。

我用它這樣的服務器端代碼+前端代碼是相同的;)

相關問題