2011-10-13 130 views
0

我想使用一個javascript變量作爲參數傳遞給我在C#中的類構造函數。將JavaScript變量轉換爲C#變量

如何將jaascript變量ID轉換爲C#,以便能夠傳遞User.IsOnLeave上的值?

<script type="text/javascript"> 
var ID; 
var dateToEvaluate; 

function convertVariable() 
    { 


*if (User.IsOnLeave(***ID***, dateToEvaluate)) 
      { 

}* 
} 
</script> 

回答

0

一種方式(IMO,唯一的辦法)與你的JavaScript代碼中的C#代碼工作的是讓Ajax電話。

jQuery.ajax()是一個不錯的選擇。

5

您不能直接從C#訪問JS變量,因爲JS是客戶端,而C#是服務器端。您可以制定控制器操作並使用這些參數向其發出AJAX請求。就像這樣:

JS:

var id; 
var dataToEvaluate; 

jQuery.ajax({ 
    type: 'POST', 
    url: 'SomeController/SomeAction', 
    data: { id: id, dataToEvaluate: dataToEvaluate }, 
    success: function(data) { 
     // do what you have to do with the result of the action 
    } 
}); 

控制器:

public ActionResult SomeAction(string id, string dataToEvaluate) 
{ 
    // some processing here 
    return <probably a JsonResult or something that fits your needs> 
} 
-1

最簡單的方法是隻呈現值到一個隱藏的文本框或DOM元素,然後有JavaScript的訪問字段。

例如

<input type="hidden" value="set from c#" id="myValue" /> 

在JavaScript

var dateToEvaluate = document.getElemenetById("myValue").value; 

或者,如果你的Javascript是在同一個文件作爲HTML。你可以只說在javascript:

var dateToEvaluate = @myValue; 

假設剃刀語法

+0

爲什麼向下票呢?類似的答案在這裏http://stackoverflow.com/questions/4599169/using-razor-within-javascript/4599403#4599403已超過177票 – Daveo

+1

我會認爲這是因爲OP是試圖獲得一個JS值到C#代碼,而不是像你已經證明的那樣。 –