Кажется, что из вашего кода данные передаются через viewbag, который приходит с сервера. Я думаю, что правильный способ сделать это - вместо рендеринга данных из вашего скрипта вы рендерите данные с сервера (синтаксис Razor), а затем инициализируете таблицу данных.
<html>
<body>
<table class="table">
<thead>
<tr>
<th>Property</th>
<th>Button</th>
</tr>
</thead>
<tbody>
<!--Server Side Rendering-->
@foreach(var i in ViewBag.TableData){
<tr>
<td>@i.PropertyName</td>
<td>
<button href="#">@i.PropertyName</button>
</td>
</tr>
}
</tbody>
</table>
<script>
// Include jquery and datatable library
// Initialize datatable
$(document).ready(function(){
var table = $('.table').DataTable();
});
</script>
</body>
</html>