有没有办法在剃刀内使用jquery代码?

Ber*_*eer 7 jquery razor asp.net-mvc-3

这是我用Razor的jQuery代码:

    $("#GroupC_grup_name").attr('value', '@foreach (SelectListItem sel in (SelectList)ViewData["Gruplar"]){ @sel.Text }')
    $("#GroupC_id").attr('value', '@foreach(SelectListItem sel in (SelectList)ViewData["Gruplar"]){ @sel.Value }')
Run Code Online (Sandbox Code Playgroud)

我想把它们合并在一起,因为我不想再打电话ViewData["Gruplar"]两次.

我可以这样做吗?

 @foreach(SelectListItem sel in (SelectList)ViewData["Gruplar"]){
     @:$("#GroupC_grup_name").attr('value', '@sel.Text');
     @:$("#GroupC_id").attr('value', '@sel.Value');
 }
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我能想到的一切,但仍然无法达到我想要的效果.

Bui*_*ted 9

我仔细阅读并了解你想做什么.然而,你的例子是令人困惑的.(似乎每个人都回答)

您在第二个示例中所做的工作应该可以正常工作,<text></text>如果这也有帮助,您可以将jQuery包装在一个元素中.如果只有一个价值你可以

<script type='text/javascript'>
    @{ var x = ((SelectList)ViewData["Gruplar"]).First(); } 
    $("#GroupC_grup_name").attr('value', '@x.Text');
    $("#GroupC_id").attr('value', '@x.Value');
</script>
Run Code Online (Sandbox Code Playgroud)

你可以通过多种方式在jquery中完成剃刀.它与带有html的剃刀基本相同.

你想在客户端执行剃刀然后就不会发生这种情况.Razor在被发送到客户端之前执行.


ipr*_*101 5

你建议的代码应该工作,下面的代码使用字符串数组而不是a SelectList但原则应该是相同的,下面的代码已经过测试和工作 -

@{String[] testarr = {"hello","bye"};}
@foreach(String sel in testarr){
 @:$("#GroupC_grup_name").attr('value', '@sel');
 @:$("#GroupC_id").attr('value', '@sel');
}
Run Code Online (Sandbox Code Playgroud)