0

我正在编写 AJAX 调用,如下所示:

 <script type="text/javascript">
                            $(function () {
                            $.ajax({
                              url: @(Url.Action("_ModulePartial", "Home")),
                              dataType: 'html',
                              success: function(data) {
                                 $('#_ModulePartial').html(data);
                              },
                           });
                         });
                        </script>
            }

我想使用 Url.Action 在默认区域的 Home 控制器中调用 _ModulePatial 动作

<script type="text/javascript">
                                    $(function () {
                                    $.ajax({
                                      url: /Home/_ModulePartial,
                                      dataType: 'html',
                                      success: function(data) {
                                         $('#_ModulePartial').html(data);
                                      },
                                   });
                                 });
                                </script>
                    }

/Home/_ModulePartial 工作正常,但我想使用 @Url.Action 来实现这一点,因为我们有 2 个不同的 URl http:/TestUrl.com/Test/User/Login 和http://TestUrl.com/User/Login所以上面网址将无法在其中一台服务器下工作。由于第一个 Url 包含“测试”,因此无法找到 Home 控制器。

那么我们可以在 Jquery 中使用 Url.Action 吗?

Firebug 给出了这个错误

SyntaxError: missing } after property list
[Break On This Error]   

url: /Home/_ModulePartial,

尝试在第一个脚本中使用 @Url.Action 调用时

4

2 回答 2

1

您需要在 ajax 调用中包含区域名称,并且必须这样做:

'@Url.Action("_ModulePartial", "Home", new { area = "Test" })'

这是完整的ajax调用:

<script type="text/javascript">
    $(function () {
        $.ajax({
            url: '@Url.Action("_ModulePartial", "Home", new { area = "Test" })',
                dataType: 'html',
                success: function(data) {
                    $('#_ModulePartial').html(data);
                },
            });
    });
</script>

此外,请确保脚本标记后的额外“}”只是复制粘贴错误。

于 2013-04-08T06:41:34.273 回答
0

知道了... :)

只需使用单引号。它有效

<script type="text/javascript">
                            $(function () {
                            $.ajax({
                              url: '@(Url.Action("_ModulePartial", "Home"))',
                              dataType: 'html',
                              success: function(data) {
                                 $('#_ModulePartial').html(data);
                              },
                           });
                         });
                        </script>
            }
于 2013-04-08T06:41:27.663 回答