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)
我已经尝试了我能想到的一切,但仍然无法达到我想要的效果.
我仔细阅读并了解你想做什么.然而,你的例子是令人困惑的.(似乎每个人都回答)
您在第二个示例中所做的工作应该可以正常工作,<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在被发送到客户端之前执行.
你建议的代码应该工作,下面的代码使用字符串数组而不是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)