请老师看看,mvc使用ajax, 为什么"new{id=obj.Id}"这个地方出错

blr2008 2019-08-12 09:43:23
var strHtml = '<tbody><tr><th>Id</th><th>Name</th><th>UnitPrice</th></tr>';
$.ajax({
url: "/Book/ShowList",
data: { id: Id, name: Name },
dataType: "json",

success: function (result) {
$.each(result, function (idx,obj) {
strHtml += '<tr><td>'
strHtml += obj.Id + '</td><td>'
strHtml += obj.Name + '</td><td>'
strHtml += obj.UnitPrice + '</td>'
strHtml += '<td>@Html.ActionLink("Details", "Details", new { id =obj.Id}, new { @class = "" })</td>'
strHtml += '</tr>'
strHtml+='</tbody>'
})
$('#table1').empty().append(strHtml);

}
})


上面的obj.Id能正常显示,把下面的obj.Id改为一个常数也能显示,就是不能用变量。
...全文
167 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用JSON.stringify({ id: Id, name: Name })试试
XBodhi. 2019-08-13
  • 打赏
  • 举报
回复
你可以放到 ViewTag 直接服务端序列化。
要不你用楼上的方法也可以。
blr2008 2019-08-12
  • 打赏
  • 举报
回复
因为HTML中把obj.Id当做一个字符串,而不是js变量,所以应改成“new{id='+obj.Id+'}”

这个也试过,又试了一次,还是不行。
本来把变量从字符串中分出来,再连接起来,应该可以,可就是不行,当时就红线提示。
  • 打赏
  • 举报
回复

    var strHtml = '<tbody><tr><th>Id</th><th>Name</th><th>UnitPrice</th></tr>';
    $.ajax({
        url: "/Book/ShowList",
        data: { id: Id, name: Name },
        dataType: "json",

        success: function (result) {
            $.each(result, function (idx, obj) {
                strHtml += '<tr><td>'
                strHtml += obj.Id + '</td><td>'
                strHtml += obj.Name + '</td><td>'
                strHtml += obj.UnitPrice + '</td>'
                strHtml += '<td>@Html.ActionLink("Details", "Details", new { id ='+obj.Id+'}, new { @class = "" })</td>'
                strHtml += '</tr>'
                strHtml += '</tbody>'
            })
            $('#table1').empty().append(strHtml);

        }
    })
  • 打赏
  • 举报
回复
{ id: Id, name: Name } 这边的id、name属性应该跟后台的变量一致,比如你得到object 后,应该object.id,而不是object.Id
正怒月神 2019-08-12
  • 打赏
  • 举报
回复
因为后台代码并不认识 js变量。 只可能js中使用到后台变量。
juess_xu 2019-08-12
  • 打赏
  • 举报
回复
因为HTML中把obj.Id当做一个字符串,而不是js变量,所以应改成“new{id='+obj.Id+'}”
blr2008 2019-08-12
  • 打赏
  • 举报
回复
{ id: Id, name: Name }
这边的id、name属性应该跟后台的变量一致,比如你得到object 后,应该object.id,而不是object.Id

都不行,用常数可以。
详细页面的链接不可能是一个常数
csdnFUCKINGSUCKS 2019-08-12
  • 打赏
  • 举报
回复
emmmmm 就是加一个a标签 干嘛搞得这么复杂

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧