$。ur中的@ Url.Action

时间:2013-04-26 09:11:19

标签: c# jquery asp.net-mvc-4

我已经看过一些关于此的帖子,但是仍然无法理解为什么这不起作用

$.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

另一个是我做的另一次尝试

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

由于

2 个答案:

答案 0 :(得分:2)

要在javascript中访问HtmlHelpers,javascript代码必须位于View页面内,而不是在javascript文件中

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

答案 1 :(得分:0)

看起来@Url.Action未被调用且URL未被返回。

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

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

如果JS抱怨上述内容,您可以尝试事先指定@:,让razor获得控制权。