将jquery字符串传递给razor中的代码

时间:2012-09-23 08:40:47

标签: jquery asp.net-mvc-3 razor

我想知道如何将使用javascript创建的字符串传递到razor的代码块中。鉴于以下几行简单的js:

var k=0;
var str1 = 'Model.FeaturedItems[';
var str2 = '].SubHeadline.ToString();';
var query = str1 + k +str2;

然后我如何将字符串查询传递到代码块?像这样的东西:

                   alert("@"+query);

应打印该行代码的结果。 修改 基本上我想执行这段代码:Model.FeaturedItems[0].SubHeadline.ToString();并在jquery中对结果执行一些操作。但是,我在尝试上述操作时遇到语法错误。

2 个答案:

答案 0 :(得分:2)

javascript适用于客户端和服务器上的razor,您尝试在服务器上执行客户端代码。只需在代码块中使用c#

C#代码:

@{
    int k = 0; 
    var query = Model.FeaturedItems[k].SubHeadline.ToString(); 
}

在客户端@query上将包含一些数据,如果它在剃刀视图中:

<script type="text/javascript">
    alert(@query); 
<script>

答案 1 :(得分:1)

这是不可能的。主要原因是JavaScript代码在客户端运行,而razor视图在服务器端呈现。在客户端ASP.NET MVC 3 Razor : Initialize a JavaScript array上创建SubHeadlines数组。