2012-04-29 139 views
0

我试图用Url.Action生成基于这样的控制器操作正确的HTTP网址: $.post('@Html.Raw(Url.Action("Delete", new { id = "1" }))')Url.Action没有搞清楚实际的URL

但是,按预期它不工作。发射实际的URL(从开发工具得到这个)是 http://localhost:60223/CordBlood/@Html.Raw(Url.Action(%22Delete%22,%20new%20%7B%20id%20=%20%224%22%20%7D))

而我想是这样的: http://localhost:60223/CordBlood/Delete/1

我在做什么错在这里?

+0

这是代码.js文件的东西吗?或者在你的.cshtml文件中?另外,你的堆栈跟踪与这个问题无关,这只是请求不良URL的结果。 – 2012-04-29 04:15:20

+1

嗯 - 你不需要使用'Html.Raw'?除此之外,代码应该可以正常工作......你可以发布一个稍大的例子吗? – Pandincus 2012-04-29 04:16:37

+0

在您提供的代码示例中,结尾的单引号出现在错误的地方。开头有两个括号,最后是三个。 – Pandincus 2012-04-29 04:18:42

回答

0

我认为你正在努力实现与此类似

<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#dropdown").change(function() { 
       var id = $("#dropdown").val(); 

       if (id == "") 
       { id = 0; } 
       var dataToSend = { 
        Id: id 

       }; 
       RedirectToPage(id); 
      }); 
      function RedirectToPage(id) { 
       var url = '@Url.Action("Delete", "yourController", new { Id = "__id__" })'; 

       window.location.href = url.replace('__id__', id); 
      } 
     }); 

    </script> 

希望这会给你一些想法

+0

我正在尝试做类似的事情。除了你正在做一个window.location,我正在做一个ajax.post 我也试图做url.replace,但唯一的区别是,我试图做一个'url.replace(/ __ ID __ /,id )' – gprasant 2012-04-29 07:21:10