我想知道如何将使用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中对结果执行一些操作。但是,我在尝试上述操作时遇到语法错误。
答案 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数组。