Подтвердить что ты не робот

Как передать значение бритвы функции jquery в представлении mvc

Итак, я пытаюсь передать параметр функции javascript, используя нотацию "@" бритвы (в представлении MVC-4), но я получаю синтаксическую ошибку: "Unterminated string constant"

Есть ли другой способ написать это?

@foreach (var item in Model)
{
 ...
    <input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID')" />
}

Я использовал тот же синтаксис, что и этот ответ qaru.site/info/275902/...

Edit:

Это просто синтаксическая ошибка, функциональность все еще работает

4b9b3361

Ответ 1

Если вы можете использовать JQuery . data()

<input type="button" value="Assign" onclick="AssignButtonClicked(this)" 
       data-assigned-id="@item.ID" />

Далее он может быть извлечен с помощью

function AssignButtonClicked(elem){
     var id= $(elem).data('assigned-id');
}

Ответ 2

попробуйте это

 <input type="button" value="Assign"
   onclick="@("AssignButtonClicked('"+item.ID+"')")"  />

Ответ 3

Попробуйте это,

 <input type="button" value="Assign" onclick="AssignButtonClicked(@item.ID);" />

Script

<script type="text/javascript">

 function AssignButtonClicked(obj) {
        alert(obj);
        return false;
    }
</script>

Ответ 4

В качестве альтернативы вы можете использовать другой способ получить @item.ID в вашей функции jQuery. Просто добавьте hiden span с ним и получите его значение в своей функции.

Скажем, у вас есть список:

<ul>
@foreach (var item in Model)
{
 ...
   <li> <input type="button" value="Assign" onclick="AssignButtonClicked()" />
        <span class="hidenID">@item.ID</span>
</li>
}
</ul>

чем в script add:

<script>
$(document).ready(function(){
$('.hidenID').hide() //**hide your span
});

function AssignButtonClicked()
{
...
var id = $(this).closest('li').find('.hidenID').text();
...
}

</script>

Но, на мой взгляд, лучший подход для jQuery заключается в следующем:

    <ul>
        @foreach (var item in Model)
        {
         ...
           <li> <input type="button" value="Assign" class="button" />
                <span class="hidenID">@item.ID</span>
        </li>
        }
        </ul>
    <script>
        $(document).ready(function(){
        $('.hidenID').hide() //**hide your span
        });

        $(function(){
         $('.button').click(function(){
        ...
         var id = $(this).closest('li').find('.hidenID').text();
        ...
        }
    });

});

    </script>

Ответ 5

Вы пытались:

<input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID');" />

Я добавил точку с запятой в конце вызова функции javascript AssignButtonClicked('@item.ID');

Ответ 6

Чтобы избежать такого рода проблем, вы можете создать весь свой вызов функции js в разделе кода С#.

Вместо:

<input type="button" value="Assign" onclick="AssignButtonClicked('@item.ID')" />

Использование:

@{
  var assignFunctionCall = "AssignButtonClicked(" + item.ID + ")";
}
<input type="button" value="Assign" onclick="@assignFunctionCall " />