2011-11-29 42 views
2

我是新來使用MVC 3 ASP.NET,我已經開始使用Razor視圖引擎。我正在使用JavaScript中的API,因此我將這些代碼放在了我的視圖中。我也通過實體框架處理數據庫,並傳遞一個包含字符串和整數的簡單類的IEnumerable列表作爲我的模型。在ASP.NET MVC 3 Razor中將JavaScript var保存到C#模型中?

我能夠在視圖中替換我的模型中的項目,根據值重新排列對象的列表並在JavaScript中使用C#模型值,但我無法將JavaScript中計算的值保存回我的視圖中我知道這是因爲我的C#代碼在服務器上運行,並且JavaScript在客戶機上運行。

我想知道什麼是將我的IEnumerable列表中的每個項目的JavaScript計算值保存到我的C#模型中的最佳方法,因此我可以根據此值重新排序我的對象以便在我的視圖中輸出。

感謝

回答

2

有一個客戶端(瀏覽器),只有這樣,跟你的服務器是通過HTTP。

這意味着您要麼使用<form>並提交它,要麼使用ajax。

ASP.NET MVC應該有適當的構造來處理Ajax請求。

另請注意,在您的視圖中使用JavaScript是不好的做法,它們應該是外部文件。

5

你可以在你的視圖中有一組隱藏的輸入,然後給它們相關的名字。您可以根據您在java腳本中使用的變量來設置值。發佈表單時,可以使用相關隱藏輸入的名稱獲取動作中的所有變量。

或者你可以發佈他們使用AJAX POST或使用jQuery的行動。 http://api.jquery.com/jQuery.post/

$.post("action/Controller",{var1:"1",var2:"2"},function(data){ 
    //this will execute after the post completed(after the server response) 

})