我正在尝试向表中添加一行,我可以这样做,问题是该行应该包含一个链接并且该链接应该有一些参数。像这样:
var $row = $("<tr>" + "<td>" + "<div style=\"border-top:3px;padding-top:3px\">" + $("<a>" + result.fileName + "</a>").attr({ href: "/AgencyNotes/OpenFile/" + result.fileName + "/" + result.agencyNoteId }) + "</div>" + "</td>" + "</tr>")
$(temp).children().children().children().children().first().after($row)
我已经尝试过其他代码,但我在 la table 中得到的只是[object Object]
:
var $row = $("<tr>" + "<td>" + "<div style=\"border-top:3px;padding-top:3px\">" + $("<a>" + result.fileName + "</a>").attr({ href: $(".link_open_file").data("url") }).data({"fileName":result.fileName, "noteId":result.agencyNoteId }) + "</div>" + "</td>" + "</tr>")
$(temp).children().children().children().children().first().after($row)
该行已正确添加,但链接不起作用,哪种方法是使用 JQuery 执行此操作的最佳方法? 顺便说一句,这是我的 Controller 操作:
public ActionResult OpenFile(string fileName, int noteId)
{
}
我更喜欢第二种方法,而不是对 url 进行硬编码 ... 我从 html 页面获取 url:
@Html.ActionLink(file.FileName, "OpenFile", new { fileName = file.FileName, noteId = file.AgencyNoteId, @class="link_open_file", data_url=Url.Action("OpenFile","AgencyNotes") })
最佳答案
如果你这样写你的 anchor 标签会怎样:
"<a href='/AgencyNotes/OpenFile/" + result.fileName + "/" + result.agencyNoteId + "'>" + result.fileName + "</a>"
在您的代码中:
var $row = $("<tr>" + "<td>" + "<div style=\"border-top:3px;padding-top:3px\">" + "<a href='/AgencyNotes/OpenFile/" + result.fileName + "/" + result.agencyNoteId + "'>" + result.fileName + "</a>" + "</div>" + "</td>" + "</tr>")
编辑:包括 AlexGH 对完整解决方案的评论:
“它在我向 RouteConfig 文件中添加了一个新的 Route 之后工作,就像这样:”
routes.MapRoute("OpenFile", "{controller}/{action}/{fileName}/{noteId}", new { ontroller = "AGgencyNotes", action = "OpenFile"}, new[] { "Project.Controllers" });
关于javascript - 使用 JQuery 将行中包含的属性链接添加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40614004/