Передача данных динамической модели в JavaScript с помощью нажатия кнопки

0

У меня есть следующая таблица html, которая содержит две кнопки. Обе кнопки обрабатываются одним и тем же обработчиком кликов.

 <div id="replaceme">

</div>
<table>
    <tr>
        <input name="edit" class="edit button" type="button" value="edit" />
    </tr>
     <tr>
        <input name="edit" class="edit button" type="button" value="edit" />
    </tr>
</table>

Когда я нажимаю одну из этих кнопок, выполняется следующий javascript:

$(document).on('click', '.edit', function (event) {
   document.getElementById("replaceme").innerHTML +="textshouldbedynamic <br/>";
});

Это работает, и текст в "replaceme" div заменяется должным образом.

Вопрос: Я хочу сделать это в таблице, которая создается через asp.net mvc, итерации в списке, который является частью моей модели. Теперь я хотел бы поместить части моей модели в функцию javascript. псевдокод:

<tr>
    <input name="edit" class="edit button" type="button" value="edit" data="foo"/>
</tr>
 <tr>
    <input name="edit" class="edit button" type="button" value="edit" data="bar"/>
</tr>

Как я могу получить такие данные динамически в функцию javascript?

edit: Правильное ли решение добавить строку json и проанализировать ее в функции javascript?

<div id="replaceme">

</div>
<table>
    <tr>
        <input name="edit" class="edit button" type="button" value="edit" id='{"FirstValue":11,"SecondValue":42}' />
    </tr>
     <tr>
        <input name="edit" class="edit button" type="button" value="edit" id='{"FirstValue":22,"SecondValue":33}'/>
    </tr>
</table>



 $(document).on('click', '.edit', function (event) {
       document.getElementById("replaceme").innerHTML +="textshouldbedynamic <br/>";

        var obj = jQuery.parseJSON( this.id );

        document.getElementById("replaceme").innerHTML += obj.FirstValue + " " + obj.SecondValue + "<br/>";
    });

Пример jsfiddle

Теги:
asp.net-mvc
asp.net-mvc-5

2 ответа

0

на asp.net mvc код, отображаемый на стороне сервера, а js - это клиентская сторона, вы не можете заставить javascript работать на сервере. однако вы можете сделать запрос на запуск javascript на клиентской стороне в состоянии готовности. скажем, вы хотите запустить:

function foo(data){
//Do somthing
}

поэтому вы можете привязать к событию onready этот вызов:

$(document).ready(function(){
   $('.edit button').each(function(){
      val data = $(this).attr('data');
      foo(data);
   });
});

это то, что вам нужно?

0

Вы думали о привязке шаблона к инфраструктуре клиентской стороны, такой как KnockoutJs?

  • 0
    Я новичок в javascript, и мне нравится изучать его без рамок на данный момент.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню