2013-04-26 53 views
0

我见过这个,但剧照几个帖子弄不明白这是为什么不工作

$.get('@Url.Action("Edit","Contacts")', {id: parseInt($(this).attr('id')) } , function (result) { 

显然这确实

$.get("/Contacts/Edit/" + parseInt($(this).attr('id')), function (result) { 

我已经试过替换,仍然得到正确的ID,但@ Url.Actions显示为一个字符串本身产生奇怪的路线,因为这一个前代码,似乎在url.action没有执行,对不对?

本地主机:53720/@Url.Action(编辑,%20Contacts)ID = 23918

版:实际上该代码生成的路线是

本地主机:53720/Url.Action(%22Edit %22%20%22Contacts%22)?ID = 23918

另一个是闯闯我做了

任何人都可以告诉我为什么?

感谢

+3

这是一个JS文件或HTML文件? – Aviatrix 2013-04-26 09:14:46

+0

试试这个 - '$ .get(“@ Url.Action('Edit','Contacts')”' – 2013-04-26 09:16:32

+0

好的问题,Aviatrix如你所见。谢谢 – mitomed 2013-04-26 09:27:41

回答

2

要访问里面的javascript HtmlHelpers,JavaScript代码必须是查看页面内,而不是内部的JavaScript文件

<script> 
    var url = '@Url.Action("Edit","Contacts")'; 
    console.log(url); 
</script> 
+0

Ouch,我绝对应该知道,我很惭愧http://stackoverflow.com/questions/14548701/ho-to-make-updatetargetid-work-in-ajax-actionlink查看最新评论 – mitomed 2013-04-26 09:20:23

0

貌似@Url.Action是没有得到所谓的,而不是返回的URL

var url = '@Url.Action("Edit","Contacts")'; 

$.get(url, {id: parseInt($(this).attr('id')) } , function (result) 

如果JS抱怨上面,你可以尝试指定@:事先让razor掌握控制权。