【问题标题】:BuildUrlFromExpressionForAreas does not generate restful URLBuildUrlFromExpressionForAreas 不生成restful URL
【发布时间】:2011-01-11 17:42:11
【问题描述】:

我有一个将 id 作为参数的控制器操作。调用它的另一种方式是:/Controller/Action/id,如果我使用 ActionLink 帮助器(如下),则 URL 会正确生成。

Html.ActionLink(linkText, action, controller, new { id = myid }) 

但是,我需要获取 url 才能在新窗口中打开页面。我尝试使用 BuildUrlFromExpressionForAreas,但它为我提供了以下格式的 url:/Controller/Action?id=myid。

Html.BuildUrlFromExpressionForAreas<MyController>(t => t.Action(myid))

这不起作用 - 我得到以下异常:

参数字典包含方法“System.Web.Mvc.ActionResult Resume(System.Guid)”的不可空类型“System.Guid”的参数“id”的空条目

我应该使用其他辅助方法吗?

谢谢!

【问题讨论】:

    标签: asp.net-mvc-2


    【解决方案1】:

    希望有更好的方法,但与此同时,这是我的解决方案:

    1 - 将“action-link”类添加到操作链接

    Html.ActionLink(linkText, action, 控制器,新 { id = myid },新 { @class='action-link'})

    2 - 使用jquery获取生成的url并将其绑定到点击事件并设置href为#

           $(document).ready(function () {
               $(".action-link").each(
                   function (index, el) {
                       var url = $(this).attr("href");
                       $(this).attr("href", "#").bind("click",
                           function () {
                               var options = "resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no";
                               window.open(url, "Interview", options, true);
                           });
                   }
               );
           });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      相关资源
      最近更新 更多