Есть ли способ использовать код JQuery внутри бритвы? - PullRequest
7 голосов
/ 20 октября 2011

Вот мой код jQuery с Razor:

    $("#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 }')

Я хочу объединить их вместе, так как я не хочу дважды вызывать ViewData["Gruplar"].

Могу ли я что-то сделатьвот так?

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

Я перепробовал все, что только мог придумать, но все еще не могу добиться того, чего хочу.

Ответы [ 3 ]

9 голосов
/ 21 октября 2011

Я внимательно читаю и понимаю, что вы хотите сделать. Однако ваш пример - это то, что сбивает с толку. (всем кажется, что ответили)

То, что вы сделали во втором примере, должно работать отлично, вы можете обернуть ваш jQuery в элемент <text></text>, если это также поможет. Если есть только одно значение, вы можете просто

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

Существует множество способов, которыми вы можете выполнить бритву в jquery. Это в основном так же, как бритва с HTML.

Если вы хотите выполнить бритву на стороне клиента, то этого не произойдет. Бритва выполняется перед отправкой клиенту.

5 голосов
/ 20 октября 2011

Код, который вы предлагаете, должен работать, код ниже использует массив строк вместо SelectList, но принцип должен быть таким же, код ниже был протестирован и работает -

@{String[] testarr = {"hello","bye"};}
@foreach(String sel in testarr){
 @:$("#GroupC_grup_name").attr('value', '@sel');
 @:$("#GroupC_id").attr('value', '@sel');
}
1 голос
/ 20 октября 2011

Насколько я понимаю, вы хотите обновить элементы, когда выбран элемент SELECT?

Создайте обычный список выбора и добавьте следующий код jquery:

<script type="text/javascript">
$(function () {
    $('#selectListId').change(function() {
        $selectedItem = $("option:selected", this);
        $("#GroupC_grup_name").val(selectedItem.html());
        $("#GroupC_id").val(selectedItem.val());
    });

});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...