如何将正确的 Url.Action 传递给 JQuery 方法而没有额外的 & 号麻烦?
Posted
技术标签:
【中文标题】如何将正确的 Url.Action 传递给 JQuery 方法而没有额外的 & 号麻烦?【英文标题】:How do I pass correct Url.Action to a JQuery method without extra ampersand trouble? 【发布时间】:2011-11-12 06:52:01 【问题描述】:我正在尝试像这样进行 ajax 调用:
$('#Grid').load('@Url.Action("_AgentStatesGrid", "AgentStates", new projectId = Model.SelectedProject, siteId = Model.SelectedSite )', null, refreshComplete);
不幸的是,它被解释为:
$('#Grid').load('/AgentStates/_AgentStatesGrid?projectId=179&siteId=0', null, refreshComplete);
如您所见,&.a.m.p.;是否存在而不是查询字符串的&符号(我放了点,因为,呃,网络将其解释为&符号......,你明白了)
我尝试了 Url.Decode,但没有任何效果。我不确定我是否理解这个问题,所以我不知道如何解决它。
【问题讨论】:
试试@html.Raw(Url.Action("_AgentStatesGrid", "AgentStates", new projectId = Model.SelectedProject, siteId = Model.SelectedSite )) 史蒂夫做到了!让它成为一个答案,以便我可以勾选它:-) 【参考方案1】:试试
@Html.Raw(Url.Action("_AgentStatesGrid", "AgentStates", new projectId = Model.SelectedProject, siteId = Model.SelectedSite ))
谢谢
【讨论】:
我对这是必需的感到有些失望。我不禁认为 Url.Action 的通常用例是一个链接,因此(技术上)几乎在所有情况下都需要 Html.Raw (单个参数正常工作的情况更多是偶然而不是设计) .但我想人们自 2011 年以来一直在为此苦苦挣扎,所以现在改变主意了…… 不能再同意了。应该编码每个参数,而不是生成的 url。 我只是“失去”了一些宝贵的生命时间来调试这个可悲的错误。 ;) 救了我的培根,认真的谁编码了整个该死的东西,而不仅仅是参数。 错误,严重吗?在正确完成工作的情况下,这种用法又如何呢? onclick="location.href = '@Url.Action("UserClone", "Preview", new sourceId = 1, targetId = 2 )';"以上是关于如何将正确的 Url.Action 传递给 JQuery 方法而没有额外的 & 号麻烦?的主要内容,如果未能解决你的问题,请参考以下文章