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 没有执行,对吧?

localhost:53720/@Url.Action(Edit,%20Contacts)?id=23918

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

localhost:53720/Url.Action(%22Edit%22,%20%22Contacts%22)?id=23918

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

谁能告诉我为什么?

谢谢

4

2 回答 2

2

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

<script>
    var url = '@Url.Action("Edit","Contacts")';
    console.log(url);
</script>
于 2013-04-26T09:15:36.407 回答
0

看起来@Url.Action没有被调用并且URL没有被返回。

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

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

如果 JS 抱怨上述情况,您可以尝试@:预先指定以让razor控制权。

于 2013-04-26T09:15:06.770 回答