2015-12-16 2 views
-1

Я использую jQuery в проекте веб-сайта ASP.Net mvc 5.jquery ASP.Net «Недопустимый термин выражения» {'"

Это мой код

function loadTableWorkshops() { 

    @foreach (var item in Model) { 

    var row = jQuery("<tr></tr>").append("<td>" + item.title + "</td><td>" + item.date + "</td>"); 
    var deletebtn = jQuery("<a>Delete</a>").attr({ 
     "data-toggle": "modal", 
     "data-target": "#myModal"}) 
     .addClass("delete") 
     .click(function() { displayDeleteAlert(item.wid, item.title) }); 
    var detailsbtn = jQuery("<a>Details</a>").attr("href", "/TLCWS/myPlutonLocalhost/workshopDetails.php?wid=" + item.wid + "&wstitle=" + item.title) 
     .addClass("details"); 

    ... 

    } //foreach 
} //function 

ошибка, что я получаю это

CS1525: Invalid expression term '{' 

и он ссылается на эту строку кода

var deletebtn = jQuery("<a>Delete</a>").attr({ 

Я пытался инициализировать var deletebtn в один но проблема все еще существует. Я уверен, что jQuery правильно включен в мой проект, так как он отлично работает в других местах проекта и в том же файле.

+0

Вы помещаете jquery внутри своего C# –

+0

Вы не можете смешивать бритву (код на стороне сервера) с помощью javascript (код на стороне клиента), подобный этому –

+0

Мне нужно сказать, что это так. Есть ли работа, чтобы сделать это? – Alsmayer

ответ

1

При использовании @foreach .. { следующие операторы являются операторами C# до закрытия }, но вместо этого вы поставили там javascript/jquery.

Без проверки, вы должны быть в состоянии сделать:

function loadTableWorkshops() { 

    @foreach (var item in Model) { 

     // item is server-side so needs @item 

    <text> 
     var row = jQuery("<tr></tr>").append("<td>" + @item.title + "</td><td>" + @item.date + "</td>"); 
     var deletebtn = jQuery("<a>Delete</a>").attr({ 
      "data-toggle": "modal", 
      "data-target": "#myModal"}) 
     .addClass("delete") 
     .click(function() { displayDeleteAlert(@item.wid, @item.title) }); 
     var detailsbtn = jQuery("<a>Details</a>").attr("href", "/TLCWS/myPlutonLocalhost/workshopDetails.php?wid=" + @item.wid + "&wstitle=" + @item.title) 
     .addClass("details"); 

     ... 
    </text> 

    } //foreach 
} 

но вы можете полностью переосмыслить то, как вы создаете свой динамический HTML.

Например, вы можете преобразовать модель в JavaScript, а затем использовать чистые JS манипулировать им, например:

function loadTableWorkshops() { 

    var items = '@Model.ToString()'; // convert here, maybe use JSON if you haven't overridden ToString() 

    items.each(function() { 
     var item = this; 
     var row = jQuery("<tr></tr>").append("<td>" + item.title + "</td><td>" + item.date + "</td>"); 
     var deletebtn = jQuery("<a>Delete</a>").attr({ 
      "data-toggle": "modal", 
      "data-target": "#myModal"}) 
     .addClass("delete") 
     .click(function() { displayDeleteAlert(item.wid, item.title) }); 
     var detailsbtn = jQuery("<a>Details</a>").attr("href", "/TLCWS/myPlutonLocalhost/workshopDetails.php?wid=" + item.wid + "&wstitle=" + item.title) 
     .addClass("details"); 

     ... 
    } //each 
} 

Ключ будет в том, как конвертировать Model в items - это вряд ли ToString хватит , но вы должны приблизиться к вам.

+0

спасибо. большое оправдание. – Alsmayer

Смежные вопросы