2011-10-13 226 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#代码,而不是像你已经证明的那样。 –