2012-01-04 102 views
0

我有一个名为“myaction” MobileController一个动作,我用JavaScript调用它像这样:获取指向操作的链接?

<script type="text/javascript"> 
    function SubmitData() { 

     $.ajax(
      { 
       type: "POST", 
       url: "http://localhost:1613/Mobile/myaction", 
       data: "id to post", 
       success: 
       function (result) { 
        window.alert("SUCCESS"); 
       }, 
       error: function (req, status, error) { 
        window.alert("ERROR!"); 
       } 
      } 
      ); 
    } 
</script> 

通知但该网址无法使用相对路径,我试图使它只是〜/手机/ myaction但那没用。

任何想法,我可以做到这一点,所指向的URL将在所有情况下工作,而不仅仅是如果域是localhost:1613?就像我上传到mysite.com一样,它会在mysite.com/mobile/myaction上找到该操作。

感谢您的帮助!

+0

你会得到什么错误 – 2012-01-04 05:37:13

+0

尝试只是调用动作像myaction这一切有关URL的路径很好的方式来卡车它是通过使用Firefox中的Web控制台并看到请求的URL – 2012-01-04 05:40:41

+0

相对URL的工作!你可以在Firebug中检查你的ajax调用,并检查哪个URL被调用? – 2012-01-04 05:40:52

回答

2

通过更换网址:

url: "/Mobile/myaction" 

随着~标志,它只会服务器控件/职能的工作。

3

您是否尝试过:我使用这个精确地值传递给JavaScript函数

+0

缩写为您的版本。让我打字显然比所需要的更多... – Sascha 2012-01-04 05:42:30

1

您可以使用这样的事情Html ::“/ appName/Mobile/myaction /”
我建议你给你的应用程序虚拟路径“/应用程序名称“这样做,我会让你避免在URL中的appName

2
url: "@Url.Content("~/appName/Mobile/myaction/")" 


new UrlHelper(HttpContext.Current.Request.RequestContext).Action("<action>", "<controller>", new { id = 1 }) 

url: "@Url.Action(....)",