jquery ASP.Net”;无效的表达式项';{';
本文关键字:表达式 无效 ASP Net jquery | 更新日期: 2023-09-27 18:26:56
我在ASP.Net mvc 5网站项目中使用jQuery。
这是我的代码
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被正确地包含在我的项目中,因为它在项目的其他地方和同一个文件中都能很好地工作。
当您使用@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
不太可能足够,但应该会让你更接近。