2015-12-16 107 views
-1

我在ASP.Net mvc 5網站項目中使用jQuery。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 
} 

的關鍵是你如何轉換Modelitems - 這是不可能ToString就足夠了,但應該讓你更接近。

+0

謝謝。偉大的理由。 – Alsmayer